UNPKG

@dvsa/smc-encounter-schema

Version:

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

1 lines 4.41 kB
'use strict';var classTransformer=require('class-transformer'),classValidator=require('class-validator');var y=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var i=(o,e)=>y(o,"name",{value:e,configurable:true});var r=(o,e,E,n)=>{for(var l=n>1?void 0:n?v(e,E):e,u=o.length-1,c;u>=0;u--)(c=o[u])&&(l=(n?c(e,E,l):c(l))||l);return n&&l&&y(e,E,l),l};var A=class o{static{i(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return o.instance||(o.instance=new o),o.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 m=class{validate(e,E){let n=E.constraints[0],l=A.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:e==null?false:typeof e=="string"?n.allowEmpty?true:e.trim().length>0:Array.isArray(e)?e.length===0?false:e.every((O,H)=>O==null?false:Object.entries(O).every(([P,N])=>typeof N=="string"?N.trim().length>0:N!=null)):true}};i(m,"MandatoryFieldConstraint"),m=r([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],m);function t(o,e){return (E,n)=>{classValidator.registerDecorator({name:"MandatoryField",target:E.constructor,propertyName:n,constraints:[o],options:e,validator:m});}}i(t,"MandatoryField");var a=class{validate(e,E){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(a,"UKDateFormatValidator"),a=r([classValidator.ValidatorConstraint({name:"ValidateUKDateFormat",async:false})],a);function R(o){return (e,E)=>{classValidator.registerDecorator({name:"ValidateUKDateFormat",target:e.constructor,propertyName:E,options:o,validator:a});}}i(R,"ValidateUKDateFormat");var s=class{static{i(this,"DangerousCheckListItemDetailBase");}generatedNumber;checkListItem;questionText;sectionHeading;effectiveFromDate;effectiveToDate};r([t({level:4},{groups:["createEncounter"]})],s.prototype,"generatedNumber",2),r([t({level:4},{groups:["createEncounter"]})],s.prototype,"checkListItem",2),r([t({level:4},{groups:["createEncounter"]})],s.prototype,"questionText",2),r([t({level:4},{groups:["createEncounter"]})],s.prototype,"sectionHeading",2),r([R({groups:["createEncounter"]}),t({level:4},{groups:["createEncounter"]})],s.prototype,"effectiveFromDate",2),r([R({groups:["createEncounter"]}),classValidator.IsOptional()],s.prototype,"effectiveToDate",2);var f=class{static{i(this,"DangerousCheckListItemBase");}checkListItemDetail;name;description};r([classValidator.ValidateNested(),classTransformer.Type(()=>s),t({level:4},{groups:["createEncounter"]})],f.prototype,"checkListItemDetail",2),r([t({level:4},{groups:["createEncounter"]})],f.prototype,"name",2),r([t({level:4},{groups:["createEncounter"]})],f.prototype,"description",2);var T=class{static{i(this,"DangerousContainerTypeBase");}description;deletionMarker};r([t({level:4},{groups:["createEncounter"]})],T.prototype,"description",2),r([t({level:4},{groups:["createEncounter"]})],T.prototype,"deletionMarker",2);var p=class{static{i(this,"DangerousCheckListBase");}totQtyDangerousGoods;categoryOfRisk;limitExceeded;miscRemarks;unNumber;carriedOutBy;checkListItems};r([t({level:4},{groups:["createEncounter"]})],p.prototype,"totQtyDangerousGoods",2),r([t({level:4},{groups:["createEncounter"]})],p.prototype,"categoryOfRisk",2),r([t({level:4},{groups:["createEncounter"]})],p.prototype,"limitExceeded",2),r([classValidator.IsOptional()],p.prototype,"miscRemarks",2),r([classValidator.MaxLength(300,{message:"Must be no more than 300 characters in length"}),t({level:4},{groups:["createEncounter"]})],p.prototype,"unNumber",2),r([classValidator.ValidateNested(),classTransformer.Type(()=>T),t({level:4},{groups:["createEncounter"]})],p.prototype,"carriedOutBy",2),r([classValidator.ValidateNested({each:true}),classTransformer.Type(()=>f),classValidator.IsArray(),t({level:4},{groups:["createEncounter"]})],p.prototype,"checkListItems",2);exports.DangerousCheckListBase=p;