Commit ee9c6b12 authored by Omar Luna Hernández's avatar Omar Luna Hernández
Browse files

Se agrega la lógica de agregar un admin y de obtener la información basado en su token

parent 6609bb1a
Loading
Loading
Loading
Loading
+31 −2
Original line number Diff line number Diff line
import axios from "axios";
import { AdminDatasourceInf } from "../../../infraestructure/datasources/admin_datasource";
import { AdminFormValues } from "../../../infraestructure/entities/admin_form_values";
import { Admin, AdminFormValues } from "../../../infraestructure/entities/admin_form_values";
import { APIUrl } from "../../../constants/api_url";
import { AdminModel } from "../../models/prod/AdminModel";
import { UserRole } from "../../../constants/roles";

export class AdminDatasourceProd implements AdminDatasourceInf{
  async registerAdmin(form: AdminFormValues): Promise<void> {
    await axios.post(
      APIUrl + "/admin/signup",
      {
        email: form.email,
        idTowm: form.townAdmin,
        password: form.password,
        name: form.name,
        lastName: form.lastName
      }
    );
  }

  async getAdminInfo(token: string): Promise<Admin> {
    const {data} = await axios.get<AdminModel>(APIUrl+'/admin/whoami',{
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    const admin: Admin = {
      email: data.email,
      name: data.name,
      lastName: data.lastName,
      role: data.role === UserRole.SUPERADMIN ? UserRole.SUPERADMIN : UserRole.ADMIN,
      idTown: data.idTown
    }
    return admin;
  }
}
 No newline at end of file
+6 −2
Original line number Diff line number Diff line
import { AdminDatasourceInf } from "../../../infraestructure/datasources/admin_datasource";
import { AdminFormValues } from "../../../infraestructure/entities/admin_form_values";
import { Admin, AdminFormValues } from "../../../infraestructure/entities/admin_form_values";
import { AdminRepositoryInf } from "../../../infraestructure/repositories/admin_repository";

export class AdminRepositoryProd implements AdminRepositoryInf{
@@ -10,4 +10,8 @@ export class AdminRepositoryProd implements AdminRepositoryInf{
  async registerAdmin(form: AdminFormValues): Promise<void> {
    return this.datasource.registerAdmin(form);
  }

  async getAdminInfo(token: string): Promise<Admin> {
    return this.datasource.getAdminInfo(token);  
  }
}
 No newline at end of file
+3 −2
Original line number Diff line number Diff line
import { AdminFormValues } from "../entities/admin_form_values";
import { Admin, AdminFormValues } from "../entities/admin_form_values";

export interface AdminDatasourceInf{
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
}
 No newline at end of file
+3 −2
Original line number Diff line number Diff line
import { AdminFormValues } from "../entities/admin_form_values";
import { Admin, AdminFormValues } from "../entities/admin_form_values";

export interface AdminRepositoryInf{
    registerAdmin(form: AdminFormValues): void;
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
}
 No newline at end of file