api/identification.go

Summary

Maintainability
A
0 mins
Test Coverage
package api

import (
    "encoding/json"
)

// IdentificationName represents the payload for the identification name section.
type IdentificationName struct {
    PayloadName Payload `json:"Name" sql:"-"`

    Name *Name `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationName) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    name, err := entity.PayloadName.Entity()
    if err != nil {
        return err
    }
    entity.Name = name.(*Name)

    return err
}

// Marshal to payload structure
func (entity *IdentificationName) Marshal() Payload {
    if entity.Name != nil {
        entity.PayloadName = entity.Name.Marshal()
    }
    return MarshalPayloadEntity("identification.name", entity)
}

// IdentificationBirthPlace represents the payload for the identification birth place section.
type IdentificationBirthPlace struct {
    Payload Payload `json:"Location" sql:"-"`

    Location *Location `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationBirthPlace) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    location, err := entity.Payload.Entity()
    if err != nil {
        return err
    }
    entity.Location = location.(*Location)

    return err
}

// Marshal to payload structure
func (entity *IdentificationBirthPlace) Marshal() Payload {
    if entity.Location != nil {
        entity.Payload = entity.Location.Marshal()
    }
    return MarshalPayloadEntity("identification.birthplace", entity)
}

// IdentificationBirthDate represents the payload for the identification birth date section.
type IdentificationBirthDate struct {
    PayloadDate      Payload `json:"Date" sql:"-"`
    PayloadConfirmed Payload `json:"Confirmed" sql:"-"`

    Date      *DateControl `json:"-"`
    Confirmed *Checkbox    `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationBirthDate) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    date, err := entity.PayloadDate.Entity()
    if err != nil {
        return err
    }
    entity.Date = date.(*DateControl)

    confirmed, err := entity.PayloadConfirmed.Entity()
    if err != nil {
        return err
    }
    entity.Confirmed = confirmed.(*Checkbox)

    return err
}

// Marshal to payload structure
func (entity *IdentificationBirthDate) Marshal() Payload {
    if entity.Date != nil {
        entity.PayloadDate = entity.Date.Marshal()
    }
    if entity.Confirmed != nil {
        entity.PayloadConfirmed = entity.Confirmed.Marshal()
    }
    return MarshalPayloadEntity("identification.birthdate", entity)
}

// IdentificationSSN represents the payload for the identification SSN section.
type IdentificationSSN struct {
    Payload Payload `json:"ssn" sql:"-"`

    Verified bool `json:"verified"`
    SSN      *SSN `json:"-" sql:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationSSN) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    ssn, err := entity.Payload.Entity()
    if err != nil {
        return err
    }
    entity.SSN = ssn.(*SSN)

    return err
}

// Marshal to payload structure
func (entity *IdentificationSSN) Marshal() Payload {
    if entity.SSN != nil {
        entity.Payload = entity.SSN.Marshal()
    }
    return MarshalPayloadEntity("identification.ssn", entity)
}

// IdentificationContacts represents the payload for the identification contact information section.
type IdentificationContacts struct {
    PayloadHomeEmail    Payload `json:"HomeEmail" sql:"-"`
    PayloadWorkEmail    Payload `json:"WorkEmail" sql:"-"`
    PayloadPhoneNumbers Payload `json:"PhoneNumbers" sql:"-"`

    HomeEmail    *Email      `json:"-"`
    WorkEmail    *Email      `json:"-"`
    PhoneNumbers *Collection `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationContacts) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    homeEmail, err := entity.PayloadHomeEmail.Entity()
    if err != nil {
        return err
    }
    entity.HomeEmail = homeEmail.(*Email)

    workEmail, err := entity.PayloadWorkEmail.Entity()
    if err != nil {
        return err
    }
    entity.WorkEmail = workEmail.(*Email)

    phoneNumbers, err := entity.PayloadPhoneNumbers.Entity()
    if err != nil {
        return err
    }
    entity.PhoneNumbers = phoneNumbers.(*Collection)

    return nil
}

// Marshal to payload structure
func (entity *IdentificationContacts) Marshal() Payload {
    if entity.HomeEmail != nil {
        entity.PayloadHomeEmail = entity.HomeEmail.Marshal()
    }
    if entity.WorkEmail != nil {
        entity.PayloadWorkEmail = entity.WorkEmail.Marshal()
    }
    if entity.PhoneNumbers != nil {
        entity.PayloadPhoneNumbers = entity.PhoneNumbers.Marshal()
    }
    return MarshalPayloadEntity("identification.contacts", entity)
}

// IdentificationOtherNames represents the payload for the identification other names section.
type IdentificationOtherNames struct {
    PayloadHasOtherNames Payload `json:"HasOtherNames" sql:"-"`
    PayloadList          Payload `json:"List" sql:"-"`

    HasOtherNames *Branch     `json:"-"`
    List          *Collection `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationOtherNames) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    branch, err := entity.PayloadHasOtherNames.Entity()
    if err != nil {
        return err
    }
    entity.HasOtherNames = branch.(*Branch)

    list, err := entity.PayloadList.Entity()
    if err != nil {
        return err
    }
    entity.List = list.(*Collection)

    return nil
}

// Marshal to payload structure
func (entity *IdentificationOtherNames) Marshal() Payload {
    if entity.HasOtherNames != nil {
        entity.PayloadHasOtherNames = entity.HasOtherNames.Marshal()
    }
    if entity.List != nil {
        entity.PayloadList = entity.List.Marshal()
    }
    return MarshalPayloadEntity("identification.othernames", entity)
}

// ClearNoBranches Implements the Rejector interface and clears any nos on applicaiton kickback
func (entity *IdentificationOtherNames) ClearNoBranches() error {

    entity.HasOtherNames.ClearNo()
    entity.List.ClearBranchNo()

    return nil
}

// IdentificationPhysical represents the payload for the identification physical traits section.
type IdentificationPhysical struct {
    PayloadComments  Payload `json:"Comments" sql:"-"`
    PayloadEyeColor  Payload `json:"EyeColor" sql:"-"`
    PayloadHairColor Payload `json:"HairColor" sql:"-"`
    PayloadHeight    Payload `json:"Height" sql:"-"`
    PayloadSex       Payload `json:"Sex" sql:"-"`
    PayloadWeight    Payload `json:"Weight" sql:"-"`

    Comments  *Textarea `json:"-"`
    EyeColor  *Text     `json:"-"`
    HairColor *Text     `json:"-"`
    Sex       *Text     `json:"-"`
    Height    *Height   `json:"-"`
    Weight    *Number   `json:"-"`
}

// Unmarshal bytes in to the entity properties.
func (entity *IdentificationPhysical) Unmarshal(raw []byte) error {
    err := json.Unmarshal(raw, entity)
    if err != nil {
        return err
    }

    comments, err := entity.PayloadComments.Entity()
    if err != nil {
        return err
    }
    entity.Comments = comments.(*Textarea)

    eye, err := entity.PayloadEyeColor.Entity()
    if err != nil {
        return err
    }
    entity.EyeColor = eye.(*Text)

    hair, err := entity.PayloadHairColor.Entity()
    if err != nil {
        return err
    }
    entity.HairColor = hair.(*Text)

    sex, err := entity.PayloadSex.Entity()
    if err != nil {
        return err
    }
    entity.Sex = sex.(*Text)

    height, err := entity.PayloadHeight.Entity()
    if err != nil {
        return err
    }
    entity.Height = height.(*Height)

    weight, err := entity.PayloadWeight.Entity()
    if err != nil {
        return err
    }
    entity.Weight = weight.(*Number)

    return err
}

// Marshal to payload structure
func (entity *IdentificationPhysical) Marshal() Payload {
    if entity.Comments != nil {
        entity.PayloadComments = entity.Comments.Marshal()
    }
    if entity.EyeColor != nil {
        entity.PayloadEyeColor = entity.EyeColor.Marshal()
    }
    if entity.HairColor != nil {
        entity.PayloadHairColor = entity.HairColor.Marshal()
    }
    if entity.Height != nil {
        entity.PayloadHeight = entity.Height.Marshal()
    }
    if entity.Sex != nil {
        entity.PayloadSex = entity.Sex.Marshal()
    }
    if entity.Weight != nil {
        entity.PayloadWeight = entity.Weight.Marshal()
    }
    return MarshalPayloadEntity("identification.physical", entity)
}