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

Se crea la lógica para comunicarse con la API y cambiar la contraseña de un admin

parent b155d650
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -4,11 +4,12 @@ import { Admin, AdminFormValues } from "../../../infraestructure/entities/admin_
import { APIUrl } from "../../../constants/api_url";
import { AdminModel } from "../../models/prod/AdminModel";
import { UserRole } from "../../../constants/roles";
import { API_ROUTE_ADMIN_CHANGE_PASSWORD, API_ROUTE_ADMIN_SIGNUP, API_ROUTE_ADMIN_WHOAMI } from "../../../constants/api_routes";

export class AdminDatasourceProd implements AdminDatasourceInf{
  async registerAdmin(form: AdminFormValues): Promise<void> {
    await axios.post(
      APIUrl + "/admin/signup",
      APIUrl + API_ROUTE_ADMIN_SIGNUP,
      {
        email: form.email,
        idTowm: form.townAdmin,
@@ -20,7 +21,7 @@ export class AdminDatasourceProd implements AdminDatasourceInf{
  }

  async getAdminInfo(token: string): Promise<Admin> {
    const {data} = await axios.get<AdminModel>(APIUrl+'/admin/whoami',{
    const {data} = await axios.get<AdminModel>(APIUrl + API_ROUTE_ADMIN_WHOAMI,{
      headers: {
        'Authorization': `Bearer ${token}`
      }
@@ -34,4 +35,18 @@ export class AdminDatasourceProd implements AdminDatasourceInf{
    }
    return admin;
  }

  async changePassword(token: string, prevPassword: string, newPassword: string): Promise<void> {
    await axios.post(APIUrl + API_ROUTE_ADMIN_CHANGE_PASSWORD, 
      {
      prevPassword: prevPassword,
      newPassword: newPassword
      },
      {
        headers: {
          'Authorization': `Bearer ${token}`
        }
      }
    );
  }
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -14,4 +14,8 @@ export class AdminRepositoryProd implements AdminRepositoryInf{
  async getAdminInfo(token: string): Promise<Admin> {
    return this.datasource.getAdminInfo(token);  
  }

  async changePassword(token: string, prevPassword: string, newPassword: string): Promise<void> {
    return this.datasource.changePassword(token, prevPassword, newPassword);
  }
}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -3,4 +3,5 @@ import { Admin, AdminFormValues } from "../entities/admin_form_values";
export interface AdminDatasourceInf{
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
  changePassword(token : string, prevPassword: string, newPassword: string): Promise<void>;
}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -3,4 +3,5 @@ import { Admin, AdminFormValues } from "../entities/admin_form_values";
export interface AdminRepositoryInf{
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
  changePassword(token : string, prevPassword: string, newPassword: string): Promise<void>;
}
 No newline at end of file