18F/e-QIP-prototype

View on GitHub
src/schema/section/legal-police-offenses.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint-disable import/prefer-default-export */
import * as form from '../form'

export const legalPoliceOffenses = (data = {}) => {
  const items = ((data.List || {}).items || []).map((x) => {
    const xitem = x.Item || {}
    return {
      Item: {
        Has: form.branch(xitem.Has),
        Date: form.datecontrol(xitem.Date),
        Description: form.textarea(xitem.Description),
        InvolvedViolence: form.branch(xitem.InvolvedViolence),
        InvolvedFirearms: form.branch(xitem.InvolvedFirearms),
        InvolvedSubstances: form.branch(xitem.InvolvedSubstances),
        Address: form.location(xitem.Address),
        WasCited: form.branch(xitem.WasCited),
        CitedBy: form.text(xitem.CitedBy),
        AgencyAddress: form.location(xitem.AgencyAddress),
        WasCharged: form.branch(xitem.WasCharged),
        Explanation: form.textarea(xitem.Explanation),
        CourtName: form.text(xitem.CourtName),
        CourtAddress: form.location(xitem.CourtAddress),
        Charges: form.collection(
          ((xitem.Charges || {}).items || []).map((y) => {
            const yItem = y.Item || {}
            return {
              Item: {
                CourtCharge: form.text(yItem.CourtCharge),
                CourtOutcome: form.text(yItem.CourtOutcome),
                CourtDate: form.datecontrol(yItem.CourtDate),
                ChargeType: form.radio(yItem.ChargeType),
              },
            }
          })
        ),
        WasSentenced: form.branch(xitem.WasSentenced),
        Sentence: form.sentence(xitem.Sentence),
        AwaitingTrial: form.branch(xitem.AwaitingTrial),
        AwaitingTrialExplanation: form.textarea(xitem.AwaitingTrialExplanation),
      },
    }
  })
  return {
    List: form.collection(items, (data.List || {}).branch),
  }
}