UNPKG

@dvsa/smc-encounter-schema

Version:

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

1 lines 3.69 kB
'use strict';var classValidator=require('class-validator'),classTransformer=require('class-transformer'),luxon=require('luxon');var N=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var s=(t,r)=>N(t,"name",{value:r,configurable:true});var e=(t,r,p,n)=>{for(var l=n>1?void 0:n?v(r,p):r,u=t.length-1,c;u>=0;u--)(c=t[u])&&(l=(n?c(r,p,l):c(l))||l);return n&&l&&N(r,p,l),l};var g=class t{static{s(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(r){this.level=r;}getExaminerOfficerType(){return this.officerType}setExaminerOfficerType(r){this.officerType=r;}getRequestType(){return this.requestType}setRequestType(r){this.requestType=r;}isDeletedEncounter(){return this.requestType==="D"}};var a=class{validate(r,p){let n=p.constraints[0],l=g.getInstance(),u=l.getEncounterType(),c=l.getExaminerOfficerType();return n.level===0||n.exceptions?.includes(u)||n.level!==void 0&&n.level>u||n.roles?.length&&!n.roles.includes(c)&&!n.roles.includes("ANY")?true:r==null?false:typeof r=="string"?n.allowEmpty?true:r.trim().length>0:Array.isArray(r)?r.length===0?false:r.every((A,b)=>A==null?false:Object.entries(A).every(([I,m])=>typeof m=="string"?m.trim().length>0:m!=null)):true}};s(a,"MandatoryFieldConstraint"),a=e([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],a);function o(t,r){return (p,n)=>{classValidator.registerDecorator({name:"MandatoryField",target:p.constructor,propertyName:n,constraints:[t],options:r,validator:a});}}s(o,"MandatoryField");function y(){return classTransformer.Transform(({value:t})=>{if(typeof t!="string")return t;let r=luxon.DateTime.fromFormat(t,"dd/MM/yyyy HH:mm:ss",{zone:"Europe/London"});return r.isValid?r.toFormat("yyyy-MM-dd HH:mm:ss"):t})}s(y,"TransformUKDateTime");var T=class{static{s(this,"CommonDeletion");}description;deletionMarker};e([o({level:4},{groups:["createEncounter"]})],T.prototype,"description",2),e([o({level:4},{groups:["createEncounter"]})],T.prototype,"deletionMarker",2);var d=class extends T{static{s(this,"CommonData");}sequenceNumber};e([o({level:4},{groups:["createEncounter"]})],d.prototype,"sequenceNumber",2);var i=class extends d{static{s(this,"CommonOffence");}code;version;ukMarker;name;ostCode;ofgCode;fkOgpCode;fkOgpVersion;effectiveFromDate;effectiveToDate;otyCode;osbCode;hazchemRisk;hazchemReason;descriptionWelsh};e([o({level:4},{groups:["createEncounter"]})],i.prototype,"code",2),e([o({level:4},{groups:["createEncounter"]})],i.prototype,"version",2),e([o({level:4},{groups:["createEncounter"]})],i.prototype,"ukMarker",2),e([o({level:4},{groups:["createEncounter"]})],i.prototype,"name",2),e([o({level:4},{groups:["createEncounter"]})],i.prototype,"ostCode",2),e([classValidator.IsOptional()],i.prototype,"ofgCode",2),e([classValidator.IsOptional()],i.prototype,"fkOgpCode",2),e([classValidator.IsOptional()],i.prototype,"fkOgpVersion",2),e([o({level:4},{groups:["createEncounter"]}),y()],i.prototype,"effectiveFromDate",2),e([classValidator.IsOptional(),y()],i.prototype,"effectiveToDate",2),e([o({level:4},{groups:["createEncounter"]})],i.prototype,"otyCode",2),e([classValidator.IsOptional()],i.prototype,"osbCode",2),e([classValidator.IsOptional()],i.prototype,"hazchemRisk",2),e([classValidator.IsOptional()],i.prototype,"hazchemReason",2),e([classValidator.IsOptional()],i.prototype,"descriptionWelsh",2);var R=class extends i{static{s(this,"Offence");}endorsableFlag};e([classValidator.IsOptional()],R.prototype,"endorsableFlag",2);exports.Offence=R;