@dvsa/smc-encounter-schema
Version:
Schemas required for Encounter submission as well as custom validators ## Developing ### Pre-requisites
1 lines • 2.61 kB
JavaScript
;var classTransformer=require('class-transformer'),classValidator=require('class-validator');var N=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var n=(r,e)=>N(r,"name",{value:e,configurable:true});var i=(r,e,p,t)=>{for(var s=t>1?void 0:t?R(e,p):e,E=r.length-1,c;E>=0;E--)(c=r[E])&&(s=(t?c(e,p,s):c(s))||s);return t&&s&&N(e,p,s),s};var d=class r{static{n(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,p){let t=p.constraints[0],s=d.getInstance(),E=s.getEncounterType(),c=s.getExaminerOfficerType();return t.level===0||t.exceptions?.includes(E)||t.level!==void 0&&t.level>E||t.roles?.length&&!t.roles.includes(c)&&!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((A,F)=>A==null?false:Object.entries(A).every(([I,T])=>typeof T=="string"?T.trim().length>0:T!=null)):true}};n(l,"MandatoryFieldConstraint"),l=i([classValidator.ValidatorConstraint({name:"MandatoryField",async:false})],l);function o(r,e){return (p,t)=>{classValidator.registerDecorator({name:"MandatoryField",target:p.constructor,propertyName:t,constraints:[r],options:e,validator:l});}}n(o,"MandatoryField");var a=class{static{n(this,"CommonDeletion");}description;deletionMarker};i([o({level:4},{groups:["createEncounter"]})],a.prototype,"description",2),i([o({level:4},{groups:["createEncounter"]})],a.prototype,"deletionMarker",2);var f=class extends a{static{n(this,"CommonCode");}code;name};i([o({level:4},{groups:["createEncounter"]})],f.prototype,"code",2),i([o({level:4},{groups:["createEncounter"]})],f.prototype,"name",2);var u=class extends f{static{n(this,"TextType");}withinEncounter;sortSequence};i([o({level:4},{groups:["createEncounter"]})],u.prototype,"withinEncounter",2),i([classValidator.IsOptional()],u.prototype,"sortSequence",2);var y=class{static{n(this,"EncounterTexts");}textType;text};i([classValidator.ValidateNested(),classTransformer.Type(()=>u),o({level:4},{groups:["createEncounter"]})],y.prototype,"textType",2),i([o({level:4},{groups:["createEncounter"]})],y.prototype,"text",2);exports.EncounterTexts=y;