@dvsa/smc-encounter-schema
Version:
Schemas required for Encounter submission as well as custom validators ## Developing ### Pre-requisites
1 lines • 3.77 kB
JavaScript
;var classValidator=require('class-validator');var L=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var i=(e,t)=>L(e,"name",{value:t,configurable:true});var r=(e,t,l,n)=>{for(var a=n>1?void 0:n?O(t,l):t,m=e.length-1,g;m>=0;m--)(g=e[m])&&(a=(n?g(t,l,a):g(a))||a);return n&&a&&L(t,l,a),a};var E=class{validate(t,l){return t==null?true:/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(t)}defaultMessage(t){return `${t.property} must match format YYYY-MM-DD HH:mm:ss`}};i(E,"UKDateFormatValidator"),E=r([classValidator.ValidatorConstraint({name:"ValidateUKDateFormat",async:false})],E);function N(e){return (t,l)=>{classValidator.registerDecorator({name:"ValidateUKDateFormat",target:t.constructor,propertyName:l,options:e,validator:E});}}i(N,"ValidateUKDateFormat");var R=class e{static{i(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return e.instance||(e.instance=new e),e.instance}getEncounterType(){return this.level}setEncounterType(t){this.level=t;}getExaminerOfficerType(){return this.officerType}setExaminerOfficerType(t){this.officerType=t;}getRequestType(){return this.requestType}setRequestType(t){this.requestType=t;}isDeletedEncounter(){return this.requestType==="D"}};var p=class{validate(t,l){let n=l.constraints[0],a=R.getInstance(),m=a.getEncounterType(),g=a.getExaminerOfficerType();return n.level===0||n.exceptions?.includes(m)||n.level!==void 0&&n.level>m||n.roles?.length&&!n.roles.includes(g)&&!n.roles.includes("ANY")?true:t==null?false:typeof t=="string"?n.allowEmpty?true:t.trim().length>0:Array.isArray(t)?t.length===0?false:t.every((x,F)=>x==null?false:Object.entries(x).every(([V,T])=>typeof T=="string"?T.trim().length>0:T!=null)):true}};i(p,"MandatoryFieldConstraint"),p=r([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],p);function u(e,t){return (l,n)=>{classValidator.registerDecorator({name:"MandatoryField",target:l.constructor,propertyName:n,constraints:[e],options:t,validator:p});}}i(u,"MandatoryField");var c=class{static{i(this,"CommonDeletion");}description;deletionMarker};r([u({level:4},{groups:["createEncounter"]})],c.prototype,"description",2),r([u({level:4},{groups:["createEncounter"]})],c.prototype,"deletionMarker",2);var f=class extends c{static{i(this,"CommonData");}sequenceNumber};r([u({level:4},{groups:["createEncounter"]})],f.prototype,"sequenceNumber",2);var d=class extends f{static{i(this,"CommonVersion");}code;version};r([u({level:4},{groups:["createEncounter"]})],d.prototype,"code",2),r([u({level:4},{groups:["createEncounter"]})],d.prototype,"version",2);var o=class extends d{static{i(this,"OffenceBaseType");}ukMarker;sequenceNum;name;ostCode;ofgCode;effectiveFromDate;effectiveToDate;otyCode;osbCode;hazchemRisk;hazchemReason;endorsableFlag;descriptionWelsh};r([classValidator.IsOptional()],o.prototype,"ukMarker",2),r([classValidator.IsOptional()],o.prototype,"sequenceNum",2),r([classValidator.IsOptional()],o.prototype,"name",2),r([classValidator.IsOptional()],o.prototype,"ostCode",2),r([classValidator.IsOptional()],o.prototype,"ofgCode",2),r([classValidator.IsOptional(),N({groups:["createEncounter"]})],o.prototype,"effectiveFromDate",2),r([classValidator.IsOptional(),N({groups:["createEncounter"]})],o.prototype,"effectiveToDate",2),r([classValidator.IsOptional()],o.prototype,"otyCode",2),r([classValidator.IsOptional()],o.prototype,"osbCode",2),r([classValidator.IsOptional()],o.prototype,"hazchemRisk",2),r([classValidator.IsOptional()],o.prototype,"hazchemReason",2),r([classValidator.IsOptional()],o.prototype,"endorsableFlag",2),r([classValidator.IsOptional()],o.prototype,"descriptionWelsh",2);exports.OffenceBaseType=o;