UNPKG

@dvsa/smc-encounter-schema

Version:

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

1 lines 2.83 kB
'use strict';var classValidator=require('class-validator');var O=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var s=(r,e)=>O(r,"name",{value:e,configurable:true});var n=(r,e,i,t)=>{for(var o=t>1?void 0:t?A(e,i):e,a=r.length-1,f;a>=0;a--)(f=r[a])&&(o=(t?f(e,i,o):f(o))||o);return t&&o&&O(e,i,o),o};var m=class r{static{s(this,"CurrentEncounterLevel");}static instance;level;officerType;requestType;constructor(){this.level=1,this.officerType="ANY",this.requestType="C";}static getInstance(){return r.instance||(r.instance=new r),r.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 l=class{validate(e,i){let t=i.constraints[0],o=m.getInstance(),a=o.getEncounterType(),f=o.getExaminerOfficerType();return t.level===0||t.exceptions?.includes(a)||t.level!==void 0&&t.level>a||t.roles?.length&&!t.roles.includes(f)&&!t.roles.includes("ANY")?true:e==null?false:typeof e=="string"?t.allowEmpty?true:e.trim().length>0:Array.isArray(e)?e.length===0?false:e.every((d,L)=>d==null?false:Object.entries(d).every(([V,c])=>typeof c=="string"?c.trim().length>0:c!=null)):true}};s(l,"MandatoryFieldConstraint"),l=n([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],l);function u(r,e){return (i,t)=>{classValidator.registerDecorator({name:"MandatoryField",target:i.constructor,propertyName:t,constraints:[r],options:e,validator:l});}}s(u,"MandatoryField");var p=class{validate(e,i){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`}};s(p,"UKDateFormatValidator"),p=n([classValidator.ValidatorConstraint({name:"ValidateUKDateFormat",async:false})],p);function T(r){return (e,i)=>{classValidator.registerDecorator({name:"ValidateUKDateFormat",target:e.constructor,propertyName:i,options:r,validator:p});}}s(T,"ValidateUKDateFormat");var E=class{static{s(this,"DangerousCheckListItemDetailBase");}generatedNumber;checkListItem;questionText;sectionHeading;effectiveFromDate;effectiveToDate};n([u({level:4},{groups:["createEncounter"]})],E.prototype,"generatedNumber",2),n([u({level:4},{groups:["createEncounter"]})],E.prototype,"checkListItem",2),n([u({level:4},{groups:["createEncounter"]})],E.prototype,"questionText",2),n([u({level:4},{groups:["createEncounter"]})],E.prototype,"sectionHeading",2),n([T({groups:["createEncounter"]}),u({level:4},{groups:["createEncounter"]})],E.prototype,"effectiveFromDate",2),n([T({groups:["createEncounter"]}),classValidator.IsOptional()],E.prototype,"effectiveToDate",2);exports.DangerousCheckListItemDetailBase=E;