UNPKG

@dvsa/smc-encounter-schema

Version:

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

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