refactoring controller responses (in progress)

This commit is contained in:
Mikayla Dobson
2022-12-12 20:07:09 -06:00
parent 362cf752d0
commit d2b06ced7a
6 changed files with 83 additions and 44 deletions

View File

@@ -1,6 +1,7 @@
import { Express, Router } from 'express';
import UserCtl from '../controllers/UserCtl';
import { IUser } from '../schemas';
import { CtlResponse } from '../util/types';
const router = Router();
const userCtl = new UserCtl();
@@ -9,23 +10,27 @@ export const userRoute = (app: Express) => {
// get all users
router.get('/', async (req, res) => {
const data = await userCtl.getAll();
res.status(200).send(data);
const result: CtlResponse<IUser | string> = await userCtl.getAll();
res.status(result.code).send(result.data);
})
// get, put by id
router.get('/:userid', async (req, res, next) => {
const { userid } = req.params;
try {
const result: IUser = await userCtl.getOne(userid);
const { email, id, firstname, lastname, handle } = result;
res.status(200).send({
id: id,
email: email,
firstname: firstname,
lastname: lastname,
handle: handle
});
const result: CtlResponse<IUser | string> = await userCtl.getOne(userid);
if (result.ok) {
const { email, id, firstname, lastname, handle } = result.data as IUser;
res.status(result.code).send({
id: id,
email: email,
firstname: firstname,
lastname: lastname,
handle: handle
});
} else {
res.status(result.code).send(result.data as string);
}
} catch(e) {
next(e);
}