src/schema/section/history-employment.js

Summary

Maintainability
A
0 mins
Test Coverage
/* eslint import/prefer-default-export: 0  */

import * as form from '../form'

export const historyEmployment = (data = {}) => {
  const items = ((data.List || {}).items || []).map((x) => {
    const xitem = x.Item || {}
    const reprimand = xitem.Reprimand || {}
    return {
      Item: {
        EmploymentActivity: form.employmentactivity(xitem.EmploymentActivity),
        Dates: form.daterange(xitem.Dates),
        Employment: form.text(xitem.Employment),
        Status: form.radio(xitem.Status),
        Title: form.text(xitem.Title),
        DutyStation: form.text(xitem.DutyStation),
        Address: form.location(xitem.Address),
        AlternateAddress: form.physicaladdress(xitem.AlternateAddress),
        Additional: form.collection(
          ((xitem.Additional || {}).items || []).map((y) => {
            const yitem = y.Item || {}
            return {
              Item: {
                Has: form.branch(yitem.Has),
                Position: form.text(yitem.Position),
                Supervisor: form.text(yitem.Supervisor),
                DatesEmployed: form.daterange(yitem.DatesEmployed),
              },
            }
          })
        ),
        Telephone: form.telephone(xitem.Telephone),
        ReasonLeft: form.reasonleft(xitem.ReasonLeft),
        Reprimand: form.collection(
          ((reprimand || {}).items || []).map((y) => {
            const yitem = y.Item || {}
            return {
              Item: {
                Has: form.branch(yitem.Has),
                Text: form.textarea(yitem.Text),
                Date: form.datecontrol(yitem.Date),
              },
            }
          })
        ),
        Supervisor: form.supervisor(xitem.Supervisor),
        SupervisorAlternateAddress: form.physicaladdress(xitem.SupervisorAlternateAddress),
        ReferenceName: form.name(xitem.ReferenceName),
        ReferencePhone: form.telephone(xitem.ReferencePhone),
        ReferenceAddress: form.location(xitem.ReferenceAddress),
        ReferenceAlternateAddress: form.physicaladdress(xitem.ReferenceAlternateAddress),
        PhysicalAddress: form.physicaladdress(xitem.PhysicalAddress),
        PhysicalAlternateAddress: form.physicaladdress(xitem.PhysicalAlternateAddress),
      },
    }
  })

  return {
    EmploymentRecord: form.branch(data.EmploymentRecord),
    List: form.collection(items, (data.List || {}).branch),
  }
}