Skip to content
Snippets Groups Projects
UserAPI.ts 2.76 KiB
Newer Older
// TODO: Set according return types and don't use 'any' explicitly. Nor implicitly.
// Basically don't use 'any' in any context whatsoever. Despite it being the easiest solution.

/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable @typescript-eslint/no-explicit-any */
Renzo Beux's avatar
Renzo Beux committed
import axios from 'axios';

require('dotenv').config();

Renzo Beux's avatar
Renzo Beux committed
const instance = axios.create({
  baseURL: process.env.AUTH_BASE_URL,
});

Renzo Beux's avatar
Renzo Beux committed
export const validate = async (token: string) => {
  const id = await instance.post('/validate', { token });
Renzo Beux's avatar
Renzo Beux committed
  return id;
};
Renzo Beux's avatar
Renzo Beux committed
const create = async (user: any) => {
  const res = await instance.post('/', user);
  return res.data;
const login = async (user: any) => {
  const res = await instance.post('/login', user);
  return res.data;
const listUsers = async (userType: any, givenLimit: any, givenOffset: any,
  givenSearch: any, token: string) => {
  const res = await instance.get('/', {
    headers: { authorization: token },
    params: {
      type: userType,
      limit: givenLimit,
      offset: givenOffset,
      search: givenSearch,
    },
  });
  return res.data;
const update = async (user: any, idUser: string, token: string) => {
  const res = await instance.put(url, user, { headers: { authorization: token } });
  return res.data;
const password = async (user: any, idUser: string, token: string) => {
  const url = `/${idUser}/password`;
  const res = await instance.put(url, user, { headers: { authorization: token } });
  return res.data;
const approve = async (idUser: string, token: string) => {
  const url = `/${idUser}/approve`;
  const res = await instance.put(url, {}, { headers: { authorization: token } });
  return res.data;
const cancel = async (idUser: string, token: string) => {
  const url = `/${idUser}/cancel`;
  const res = await instance.put(url, {}, { headers: { authorization: token } });
  return res.data;
const giveAdminPermission = async (idUser: string, token: string) => {
  const url = `/${idUser}/admin`;
  const res = await instance.put(url, {}, { headers: { authorization: token } });
  return res.data;
const removeAdminPermission = async (idUser: string, token: string) => {
  const url = `/${idUser}/client`;
  const res = await instance.put(url, {}, { headers: { authorization: token } });
  return res.data;
Renzo Beux's avatar
Renzo Beux committed
const listUsersById = async (userIds: any, token: any) => {
Agustin Ruiz Diaz Cambon's avatar
Agustin Ruiz Diaz Cambon committed
  const url = '/usersById';
Renzo Beux's avatar
Renzo Beux committed
  const res = await instance.post(url, userIds, { headers: { authorization: token } });
Agustin Ruiz Diaz Cambon's avatar
Agustin Ruiz Diaz Cambon committed
  return res.data;
};

export default {
  create,
  login,
  listUsers,
  update,
  password,
  approve,
  cancel,
  giveAdminPermission,
  removeAdminPermission,
Agustin Ruiz Diaz Cambon's avatar
Agustin Ruiz Diaz Cambon committed
  listUsersById,