directus-hook-validate-two-dates
Version:
Validates that the second date field is greater than the first date
2 lines (1 loc) • 683 B
JavaScript
const e="start_date",t="end_date";var r=({filter:r},{logger:a})=>{const i=async(r,i,o)=>{try{if("your_collection"!==i.collection)return;if(!r[e]&&!r[t])return;let a=r[e]??null,n=r[t]??null;if(!("items.update"!==i.event||a&&n)){const r=a?t:e,s=await o.database.select(r).from(i.collection).where({id:i.keys[0]}).first();if(!s)return;a?n=s[t]:a=s[e]}if(a&&n){const e=new Date(a),t=new Date(n);if(isNaN(e.getTime())||isNaN(t.getTime()))throw new Error("Invalid date format provided");if(t<=e)throw new Error('"End Date" must be greater than "Start Date"')}}catch(e){throw a.error(`Date validation error: ${e.message}`),e}};r("items.create",i),r("items.update",i)};export{r as default};