Skip to content
Snippets Groups Projects
Commit 3e925685 authored by Ignacio Bengoa Nion's avatar Ignacio Bengoa Nion
Browse files

Handling different error messages in UserController for front-end usage

parent 62ee610e
No related branches found
No related tags found
No related merge requests found
Pipeline #16247 passed
// TODO: Get rid of all the 'any' mentions
/* eslint-disable @typescript-eslint/no-explicit-any */
import { AxiosError } from 'axios';
import {
Handler, Request, Response, Router,
} from 'express';
......@@ -14,8 +15,8 @@ const create: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.create(req.body);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -26,8 +27,8 @@ const listUsers: Handler = async (req: Request, res: Response) => {
UserAPI.listUsers(req.query.type, req.query.limit, req.query.offset, req.query.search, token);
return logAndRespond(res, 200, 'send', userList, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -36,8 +37,8 @@ const login: Handler = async (req: Request, res: Response) => {
const { token, user }: any = await UserAPI.login(req.body);
return logAndRespond(res, 200, 'send', { token, user }, 'info', null, ['token']);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -47,8 +48,8 @@ const update: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.update(req.body, req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, ['token']);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -58,8 +59,8 @@ const password: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.password(req.body, req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -69,8 +70,8 @@ const approve: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.approve(req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -80,8 +81,8 @@ const cancel: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.cancel(req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -91,8 +92,8 @@ const giveAdminPermission: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.giveAdminPermission(req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -102,8 +103,8 @@ const removeAdminPermission: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.removeAdminPermission(req.params.id, token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -113,8 +114,8 @@ const checkUser: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.checkUser(token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......@@ -124,8 +125,8 @@ const getUser: Handler = async (req: Request, res: Response) => {
const user: any = await UserAPI.getUser(Number(req.params.id), token);
return logAndRespond(res, 200, 'send', user, 'info', null, null);
} catch (error) {
const e = error as Error;
return logAndRespond(res, 400, 'json', { error: e.message }, 'info', null, null);
const e = error as AxiosError;
return logAndRespond(res, e.response ? e.response.status : 400, 'json', e.response ? e.response.data : { error: e.message }, 'info', null, null);
}
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment