handow-shm
Version:
E2E test server with Handow engine
1 lines • 1.61 kB
JavaScript
;const s=require("util"),e=s.promisify(setTimeout),t=require("express"),r=t.Router(),o=require("../services/shmSetting"),a=require("../services/doShcedule");r.use((s,e,t)=>{try{const e=s.session.user&&s.session.user.role?s.session.user.role:"No_Role";if("admin"!==e&&"/run"!==`${s.path}`){const r=new Error(`Not allowed to [${s.method}] resource of "${s.baseUrl}/*" by [${e}]`);r.status="403",r.code="001",t(r)}t()}catch(e){s.exception={status:e.status?e.status:"400",errCode:e.code?e.code:"000",error:e.message?e.message:"Check permission failed"},t(e)}}),r.get("/",async(s,e,t)=>{try{if(s.session.user&&"admin"==s.session.user.role)e.status(200).json({data:o.get(),status:{statusCode:2e5,message:"success"}});else{const s=new Error('forbidden running plan by users other than "admin"');s.status="403",s.code="001",t(s)}}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Get SHM users failed"},t(e)}}),r.put("/",async(s,e,t)=>{try{const r=o.update(s.body);e.status(200).json({data:r,status:{statusCode:2e5,message:"success"}})}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Get SHM users failed"},t(e)}}),r.post("/run",async(s,e,t)=>{try{if(`${s.get("x-shm-token").trim()}`===`${o.get().shmToken.trim()}`&&s.body.plans)a("trigger",s.body.plans),e.status(200).json({status:{statusCode:2e5,message:"success"}});else{const s=new Error("Invalid request to trigger handow running");s.status="400",s.code="003",t(s)}}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Can not set/reset handow status"},t(e)}}),module.exports=r;