nci-ats/fs-middlelayer-api

View on GitHub
src/controllers/validation.json

Summary

Maintainability
Test Coverage
{
    "tempOutfitterApplication":{
        "id":"tempOutfitterApplication",
        "type":"object",
        "allOf":[
            { "$ref": "commonFields"},
            {
                "properties":{
                    "applicantInfo": {
                        "$ref": "tempOutfitterApplicantInfo"
                    },
                    "type": {
                        "type": "string", 
                        "default": "tempOutfitters",
                        "enum":[
                            "noncommercial",
                            "tempOutfitters"
                        ]
                    },
                    "tempOutfitterFields": {
                        "$ref": "tempOutfitterFields"
                    }
                },
                "required": ["applicantInfo", "type", "tempOutfitterFields"]
            }
        ]
    },
    "tempOutfitterApplicantInfo": {
        "id": "/tempOutfitterApplicantInfo",
        "type": "object",
        "allOf":[
            {"$ref":"applicantInfoBase"},
            {
                "properties": {
                    "organizationName": {
                        "basicField":"orgCode",
                        "default":"",
                        "fromIntake":true,
                        "store":["basic:/contact/organization"],
                        "type": "string"
                    },
                    "orgType":{
                        "description":"Organization Type",
                        "enum":[
                            "Association",
                            "Corporation",
                            "Education",
                            "Federal Government",
                            "State Government",
                            "Local Govt",
                            "Married Common Property",
                            "Limited Liability Company (LLC)",
                            "Limited Liability Partnership (LLP)",
                            "Person",
                            "Trust"
                        ],
                        "fromIntake":true,
                        "store":["basic:/contact/organization"],
                        "type":"string"
                    }
                },
                "required":["orgType"]
            }
        ]

    },
    "tempOutfitterFields": {
        "id": "/tempOutfitterFields",
        "type": "object",
        "properties": {
            "individualIsCitizen": {
                "default":false,
                "fromIntake":true,
                "store":["middleLayer:individualIsCitizen"],
                "type":"boolean"
            },
            "smallBusiness": {
                "default":false,
                "fromIntake":true,
                "store":["middleLayer:smallBusiness"],
                "type":"boolean"
            },
            "activityDescription": {
                "basicField":"purpose",
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:activityDescription", "basic:/application"],
                "type": "string"
            },
            "advertisingURL": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:advertisingURL"],
                "type": "string"
            },
            "advertisingDescription": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:advertisingDescription"],
                "type": "string"
            },
            "clientCharges": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:clientCharges"],
                "type": "string"
            },
            "experienceList": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:experienceList"],
                "type": "string"
            },
            "guideDocumentation": {
                "filetypecode":"gud",
                "maxSize": 25,
                "requiredFile":false,
                "store":["middleLayer:guideDocumentation"],
                "type": "file",
                "validExtensions":[
                    "pdf",
                    "doc",
                    "docx",
                    "rtf"
                ]
            },
            "acknowledgementOfRiskForm": {
                "filetypecode":"arf",
                "maxSize": 10,
                "requirequiredFilered":false,
                "store":["middleLayer:acknowledgementOfRiskForm"],
                "type": "file",
                "validExtensions":[
                    "pdf",
                    "doc",
                    "docx",
                    "rtf"
                ]
            },
            "insuranceCertificate": {
                "filetypecode":"inc",
                "maxSize": 10,
                "requiredFile":true,
                "store":["middleLayer:insuranceCertificate"],
                "type": "file",
                "validExtensions":[
                    "pdf",
                    "doc",
                    "docx",
                    "rtf"
                ]
            },
            "goodStandingEvidence": {
                "filetypecode":"gse",
                "maxSize": 10,
                "requiredFile":true,
                "store":["middleLayer:acknowledgementOfRiskForm"],
                "type": "file",
                "validExtensions":[
                    "pdf",
                    "doc",
                    "docx",
                    "rtf"
                ]
            },
            "operatingPlan": {
                "filetypecode":"opp",
                "maxSize": 10,
                "requiredFile":true,
                "store":["middleLayer:operatingPlan"],
                "type": "file",
                "validExtensions":[
                    "pdf",
                    "doc",
                    "docx",
                    "rtf"
                ]
            },
            "formName":{
                "basicField":"formName",
                "default":"FS-2700-4I",
                "store":["middleLayer:formName", "basic:/application"],
                "type":"string"
            }
        },
        "allOf":[
            {"required":["activityDescription", "clientCharges"]},
            {
                "anyOf": [
                    { "required": ["advertisingURL"] },
                    { "required": ["advertisingDescription"] }
                ]
            }
        ]
    },
    "noncommercialApplication": {
        "id":"noncommercialPermit",
        "type":"object",
        "allOf":[
            { "$ref": "commonFields"},
            {
                "properties":{
                    "applicantInfo": {
                        "$ref": "noncommercialApplicantInfo"
                    },
                    "type": {
                        "default": "noncommercial",
                        "enum":[
                            "noncommercial",
                            "tempOutfitters"
                        ],
                        "fromIntake":true,
                        "type": "string"
                    },
                    "noncommercialFields": {
                        "$ref": "noncommercialFields"
                    }
                },
                "required": ["applicantInfo", "type", "noncommercialFields"]
            }
        ]
    },
    "noncommercialApplicantInfo": {
        "id": "/noncommercialApplicantInfo",
        "type": "object",
        "allOf":[
            {"$ref":"applicantInfoBase"},
            {
                "properties": {
                    "organizationName": {
                        "basicField":"orgCode",
                        "default":"",
                        "fromIntake":true,
                        "store":["basic:/contact/organization"],
                        "type": "string"
                    },
                    "orgType":{
                        "basicField":"orgType",
                        "default":"",
                        "description":"Organization Type",
                        "enum":[
                            "Association",
                            "Corporation",
                            "Education",
                            "Federal Government",
                            "State Government",
                            "Local Govt",
                            "Married Common Property",
                            "Limited Liability Company (LLC)",
                            "Limited Liability Partnership (LLP)",
                            "Person",
                            "Trust"
                        ],
                        "fromIntake":true,
                        "store":["basic:/contact/organization"],
                        "type":"string"
                    }
                },
                "dependencies":{
                    "organizationName":["orgType"]
                }
            }
        ]

    },
    "noncommercialFields": {
        "id": "/noncommercialFields",
        "type": "object",
        "properties": {
            "activityDescription": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:activityDescription"],
                "type": "string"
            },
            "locationDescription": {
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:locationDescription"],
                "type": "string"
            },
            "startDateTime": {
                "default":"",
                "fromIntake":true,
                "pattern":"^(19|20)\\d\\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T(0\\d|1\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$",
                "store":["middleLayer:startDatetime"],
                "type": "string"
            },
            "endDateTime": {
                "default":"",
                "fromIntake":true,
                "pattern":"^(19|20)\\d\\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T(0\\d|1\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$",
                "store":["middleLayer:endDatetime"],
                "type": "string"
            },
            "numberParticipants": {
                "default":0,
                "fromIntake":true,
                "store":["middleLayer:numberParticipants"],
                "type": "integer"
            },
            "numberSpectators": {
                "default":0,
                "fromIntake":true,
                "store":["middleLayer:numberSpectators"],
                "type": "integer"
            },
            "formName":{
                "basicField":"formName",
                "default":"FS-2700-3B",
                "fromIntake":false,
                "store":["middleLayer:formName", "basic:/application"],
                "type":"string"
            },
            "purpose":{
                "basicField":"purpose",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":false,
                            "value":"Activity Description: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.activityDescription"
                        },
                        {
                            "fromIntake":false,
                            "value":". "
                        },
                        {
                            "fromIntake":false,
                            "value":"Location Description: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.locationDescription"
                        },
                        {
                            "fromIntake":false,
                            "value":". "
                        },
                        {
                            "fromIntake":false,
                            "value":"Start Date Time: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.startDateTime"
                        },
                        {
                            "fromIntake":false,
                            "value":". "
                        },
                        {
                            "fromIntake":false,
                            "value":"End Date Time: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.endDateTime"
                        },
                        {
                            "fromIntake":false,
                            "value":". "
                        },
                        {
                            "fromIntake":false,
                            "value":"Number Participants: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.numberParticipants"
                        },
                        {
                            "fromIntake":false,
                            "value":". "
                        },
                        {
                            "fromIntake":false,
                            "value":"Number Spectators: "
                        },
                        {
                            "fromIntake":true,
                            "field":"noncommercialFields.numberSpectators"
                        },
                        {
                            "fromIntake":false,
                            "value":"."
                        }
                    ],
                    "function":"concat"
                },
                "store":["basic:/application"],
                "type":"string"  
            }
        },
        "required": ["activityDescription", "locationDescription", "startDateTime", "endDateTime", "numberParticipants"]
    },
    "phoneNumber": {
        "id": "/phoneNumber",
        "type": "object",
        "properties": {
            "areaCode": { 
                "basicField":"areaCode",
                "default":"0",
                "fromIntake":true,
                "pattern":"^[0-9]{3}$",
                "store":["basic:/contact/phone"],
                "type": "string"
            },
            "number": {
                "basicField":"phoneNumber",
                "default":"0",
                "fromIntake":true,
                "pattern":"^[0-9]{7}$",
                "store":["basic:/contact/phone"],
                "type": "string"
            },
            "extension": {
                "basicField":"extension",
                "default":"",
                "fromIntake":true,
                "pattern": "[\\d]+",
                "store":["basic:/contact/phone"],
                "type": "string"
            },
            "phoneType": {
                "basicField":"phoneNumberType",
                "default":"",
                "fromIntake":true,
                "store":["basic:/contact/phone"],
                "type": "string"
            }
        },
        "required": ["areaCode", "number", "phoneType"]

    },
    "applicantInfoBase":{
        "id":"/applicantInfoBase",
        "type":"object",
        "properties":{
            "firstName": {
                "basicField":"firstName",
                "default":"",
                "fromIntake":true,
                "maxLength":255,
                "store":["basic:/contact/person"],
                "type": "string"
            },
            "lastName": {
                "basicField":"lastName",
                "default":"",
                "fromIntake":true,
                "maxLength":255,
                "store":["basic:/contact/person"],
                "type": "string"
            },
            "eveningPhone": { "$ref": "phoneNumber" },
            "dayPhone": { "$ref": "phoneNumber" },
            "emailAddress": {
                "basicField":"email",
                "default":"",
                "fromIntake":true,
                "pattern":"^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$",
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "mailingAddress": {
                "basicField":"address1",
                "default":"",
                "fromIntake":true,
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "mailingAddress2": {
                "basicField":"address2",
                "default":"",
                "fromIntake":true,
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "mailingCity": {
                "basicField":"cityName",
                "default":"",
                "fromIntake":true,
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "mailingState": {
                "basicField":"stateCode",
                "default":"",
                "fromIntake":true,
                "pattern":"^(A[EKLPRSZ]|C[AOT]|D[CE]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHVJMY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$",
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "mailingZIP": {
                "basicField":"postalCode",
                "default":"",
                "fromIntake":true,
                "pattern":"^[0-9]{5}$|^[0-9]{9}$",
                "store":["basic:/contact/address"],
                "type": "string"
            },
            "website":{
                "default":"",
                "fromIntake":true,
                "store":["middleLayer:website"],
                "type": "string"
            },
            "countryName":{
                "basicField":"countryName",
                "default":"United States of America",
                "store":["basic:/contact/address"],
                "type": "string"
            }
        },
        "required": ["firstName", "lastName", "dayPhone", "emailAddress", "mailingAddress", "mailingCity", "mailingZIP", "mailingState"]
    },
    "commonFields":{
        "id":"/commonFields",
        "type":"object",
        "properties":{
            "region": {
                "default":"",
                "fromIntake":true,
                "pattern":"^[0-9]{2}$",
                "store":["middleLayer:region"],
                "type" : "string"
            },
            "forest": {
                "default":"",
                "fromIntake":true,
                "pattern":"^[0-9]{2}$",
                "store":["middleLayer:forest"],
                "type" : "string"
            },
            "district": {
                "default":"",
                "fromIntake":true,
                "pattern":"^[0-9]{2}$",
                "store":["middleLayer:district"],
                "type" : "string"
            },
            "securityId":{
                "basicField":"securityId",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":true,
                            "field":"region"
                        },
                        {
                            "fromIntake":true,
                            "field":"forest"
                        }
                    ],
                    "function":"concat"
                },
                "store":["basic:/application", "basic:/contact/address", "basic:/contact/phone"],
                "type" : "string"
            },
            "managingID":{
                "basicField":"managingOrg",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":true,
                            "field":"region"
                        },
                        {
                            "fromIntake":true,
                            "field":"forest"
                        }
                    ],
                    "function":"concat"
                },
                "store":["basic:/application"],
                "type" : "string"
            },
            "adminOrg":{
                "basicField":"adminOrg",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":true,
                            "field":"region"
                        },
                        {
                            "fromIntake":true,
                            "field":"forest"
                        }
                    ],
                    "function":"concat"
                },
                "store":["basic:/application"],
                "type" : "string"
            },
            "epermitId":{
                "basicField":"epermitId",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":true,
                            "field":"region"
                        },
                        {
                            "fromIntake":true,
                            "field":"forest"
                        }
                    ],
                    "function":"ePermitId"
                },
                "store":["basic:/application"],
                "type" : "string"
            },
            "acres":{
                "basicField":"acres",
                "default":0,
                "fromIntake":false,
                "store":["basic:/application"],
                "type" : "integer"
            },
            "contCn":{
                "basicField":"contCn",
                "default":"",
                "fromIntake":false,
                "store":["basic:/contact/phone", "basic:/contact/address", "basic:/application"],
                "type" : "string"
            },
            "contId":{
                "basicField":"contId",
                "default":"",
                "fromIntake":false,
                "madeOf":{
                    "fields":[
                        {
                            "fromIntake":true,
                            "field":"applicantInfo.lastName"
                        },
                        {
                            "fromIntake":false,
                            "value":", "
                        },
                        {
                            "fromIntake":true,
                            "field":"applicantInfo.firstName"
                        },
                        {
                            "fromIntake":true,
                            "field":"applicantInfo.organizationName"
                        }
                    ],
                    "function":"contId"
                },
                "store":["basic:/contact/person", "basic:/contact/organization"],
                "type" : "string"
            }
        },
        "required": ["region", "forest", "district"]
    }

}