UNPKG

handow-shm

Version:

E2E test server with Handow engine

1 lines 1.57 kB
"use strict";const s=require("express"),e=require("path"),t=require("app-root-path"),r=require("handow"),o=require("../services/shmSetting"),a=s.Router(),i=(s,e)=>{let t;for(const r of o.get().users)if((r.username===s||r.email===s)&&r.password===e){t=r.role;break}return("admin"===t||"user"===t)&&t};a.post("/signin",async(s,e,t)=>{try{const r=i(s.body.username,s.body.password);if("admin"!==r&&"user"!==r)throw new Error("Authentication failed");s.session.user={username:s.body.username,password:s.body.password,role:r,isSigned:!0},e.status(200).json({status:{statusCode:"200000",message:"success"}})}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Signin failed"},t(e)}}),a.post("/signout",async(s,e,t)=>{try{"private"===o.get().shmMode?(s.session.user={username:"",email:"",role:"",isSigned:!1},s.session.shmSetting={shmMode:o.get().shmModed,workspace:o.get().workspace}):"secure"===o.get().shmMode&&(s.session.user={username:"",email:"user@email.com",role:"user",isSigned:!1},s.session.shmSetting={shmMode:o.get().shmModed,workspace:o.get().workspace}),e.status(200).json({status:{statusCode:"200000",message:"success"}})}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Signout failed"},t(e)}}),a.get("/session",async(s,e,t)=>{try{e.status(200).json({data:{user:s.session.user,shmSetting:s.session.shmSetting,hdwConfig:s.session.hdwConfig},status:{statusCode:"200000",message:"success"}})}catch(e){s.exception={status:"400",errCode:"000",error:e.message?e.message:"Get session failed"},t(e)}}),module.exports=a;