import {Router} from "express"; import {AppMaster} from "@onebro/appmaster"; import {handleReqValidation as validation,handleAction as action,handleResponse as response} from "@onebro/oba-common"; import {validateAppUser as getUser,validateAPIAuthTkn as authTkn,refreshAppUser as setUser} from "../../utils"; import {firstlineDistressReportActions} from "../actions"; import {firstlineDistressReportModels} from "../models"; import {firstlineDistressReportReqValidators as V} from "../validators"; const c = process.env.OBA_API_AUTH_COOKIE; const s = process.env.OBA_API_AUTH_SECRET; const k = process.env.OBA_API_EKEY; export const firstlineDistressReportController = async (m:AppMaster):Promise => { const router = Router(); const models = {...await firstlineDistressReportModels(m,null)}; const {create$,query$,fetch$,update$,remove$,updateMany$,removeMany$,search$} = await firstlineDistressReportActions(m,models); router.post("/",getUser(c,k),authTkn(s),validation(V.create()),action(create$,201),setUser(c,k),response()); router.get("/",getUser(c,k),authTkn(s),action(query$),setUser(c,k),response()); router.get("/:id",getUser(c,k),authTkn(s),action(fetch$),setUser(c,k),response()); router.put("/:id",getUser(c,k),authTkn(s),validation(V.update()),action(update$),setUser(c,k),response()); router.delete("/:id",getUser(c,k),authTkn(s),action(remove$),setUser(c,k),response()); router.put("/",getUser(c,k),authTkn(s),validation(V.updateMany()),action(updateMany$),setUser(c,k),response()); router.delete("/",getUser(c,k),authTkn(s),validation(V.removeMany()),action(removeMany$),setUser(c,k),response()); router.get("/q",getUser(c,k),authTkn(s),action(search$),setUser(c,k),response()); return router; }; export default firstlineDistressReportController;