UNPKG

@dvsa/smc-encounter-schema

Version:

Schemas required for Encounter submission as well as custom validators ## Developing ### Pre-requisites

1 lines 4.33 kB
'use strict';var classTransformer=require('class-transformer'),classValidator=require('class-validator');var A=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var i=(t,e)=>A(t,"name",{value:e,configurable:true});var r=(t,e,n,o)=>{for(var l=o>1?void 0:o?v(e,n):e,p=t.length-1,d;p>=0;p--)(d=t[p])&&(l=(o?d(e,n,l):d(l))||l);return o&&l&&A(e,n,l),l};var y=class t{static{i(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return t.instance||(t.instance=new t),t.instance}getEncounterType(){return this.level}setEncounterType(e){this.level=e;}getExaminerOfficerType(){return this.officerType}setExaminerOfficerType(e){this.officerType=e;}getRequestType(){return this.requestType}setRequestType(e){this.requestType=e;}isDeletedEncounter(){return this.requestType==="D"}};var a=class{validate(e,n){let o=n.constraints[0],l=y.getInstance(),p=l.getEncounterType(),d=l.getExaminerOfficerType();return o.level===0||o.exceptions?.includes(p)||o.level!==void 0&&o.level>p||o.roles?.length&&!o.roles.includes(d)&&!o.roles.includes("ANY")?true:e==null?false:typeof e=="string"?o.allowEmpty?true:e.trim().length>0:Array.isArray(e)?e.length===0?false:e.every((C,P)=>C==null?false:Object.entries(C).every(([Y,N])=>typeof N=="string"?N.trim().length>0:N!=null)):true}};i(a,"MandatoryFieldConstraint"),a=r([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],a);function R(t,e){return (n,o)=>{classValidator.registerDecorator({name:"MandatoryField",target:n.constructor,propertyName:o,constraints:[t],options:e,validator:a});}}i(R,"MandatoryField");var m=class{validate(e,n){return e==null?true:/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(e)}defaultMessage(e){return `${e.property} must match format YYYY-MM-DD HH:mm:ss`}};i(m,"UKDateFormatValidator"),m=r([classValidator.ValidatorConstraint({name:"ValidateUKDateFormat",async:false})],m);function E(t){return (e,n)=>{classValidator.registerDecorator({name:"ValidateUKDateFormat",target:e.constructor,propertyName:n,options:t,validator:m});}}i(E,"ValidateUKDateFormat");var u=class{static{i(this,"ExistingTradingAs");}licenceNumber;name60;currentRecordInd;extractionDate;nameFirst15};r([classValidator.IsOptional()],u.prototype,"licenceNumber",2),r([classValidator.IsOptional()],u.prototype,"name60",2),r([classValidator.IsOptional()],u.prototype,"currentRecordInd",2),r([E({groups:["createEncounter"]}),classValidator.IsOptional()],u.prototype,"extractionDate",2),r([classValidator.IsOptional()],u.prototype,"nameFirst15",2);var f=class{static{i(this,"RecordType");}licenceStatusType;licenceStatusDescription;deletionMarker};r([classValidator.IsOptional()],f.prototype,"licenceStatusType",2),r([classValidator.IsOptional()],f.prototype,"licenceStatusDescription",2),r([classValidator.IsOptional()],f.prototype,"deletionMarker",2);var s=class{static{i(this,"ExistingOperatorDetail");}extractionDate;recordType;currentRecordInd;vehiclesAuthorised;vehiclesInPossession;trailersAuthorised;trailersInPossession;licenceStartDate;licenceReviewDate;name15;telephoneNumber;existingTradingAs};r([E({groups:["createEncounter"]}),R({level:4},{groups:["createEncounter"]})],s.prototype,"extractionDate",2),r([classValidator.ValidateIf((e,n)=>n!=null),classValidator.ValidateNested(),classTransformer.Type(()=>f),classValidator.IsOptional()],s.prototype,"recordType",2),r([classValidator.IsOptional()],s.prototype,"currentRecordInd",2),r([classValidator.IsOptional()],s.prototype,"vehiclesAuthorised",2),r([classValidator.IsOptional()],s.prototype,"vehiclesInPossession",2),r([classValidator.IsOptional()],s.prototype,"trailersAuthorised",2),r([classValidator.IsOptional()],s.prototype,"trailersInPossession",2),r([E({groups:["createEncounter"]}),R({level:4},{groups:["createEncounter"]})],s.prototype,"licenceStartDate",2),r([E({groups:["createEncounter"]}),R({level:4},{groups:["createEncounter"]})],s.prototype,"licenceReviewDate",2),r([classValidator.IsOptional()],s.prototype,"name15",2),r([classValidator.IsOptional()],s.prototype,"telephoneNumber",2),r([classValidator.ValidateIf((e,n)=>n!=null),classValidator.ValidateNested(),classTransformer.Type(()=>u),classValidator.IsOptional()],s.prototype,"existingTradingAs",2);exports.ExistingOperatorDetail=s;