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

Se crea la lógica para conectarse con la API para obtener el codigo y reiniciar la contraseña

parent dd325c63
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -10,9 +10,12 @@ import { UserRole } from "../../../constants/roles";
import {
  API_ROUTE_ADMIN,
  API_ROUTE_ADMIN_CHANGE_PASSWORD,
  API_ROUTE_ADMIN_GENERATE_RESET_CODE,
  API_ROUTE_ADMIN_RESET_PASSWORD,
  API_ROUTE_ADMIN_SIGNUP,
  API_ROUTE_ADMIN_WHOAMI,
} from "../../../constants/api_routes";
import { ResetPasswordValues } from "../../../infraestructure/entities/reset_password_values";

export class AdminDatasourceProd implements AdminDatasourceInf {
  async registerAdmin(form: AdminFormValues): Promise<void> {
@@ -81,4 +84,18 @@ export class AdminDatasourceProd implements AdminDatasourceInf {
    });
    return admins;
  }

  async generateResetCode(email: string): Promise<void> {
    await axios.post(APIUrl + API_ROUTE_ADMIN_GENERATE_RESET_CODE, {
      email: email,
    });
  }

  async resetPassword(form: ResetPasswordValues): Promise<void> {
    await axios.post(APIUrl + API_ROUTE_ADMIN_RESET_PASSWORD, {
      email: form.email,
      resetCode: form.code,
      newPassword: form.newPassword,
    });
  }
}
+22 −8
Original line number Diff line number Diff line
import { AdminDatasourceInf } from "../../../infraestructure/datasources/admin_datasource";
import { Admin, AdminFormValues } from "../../../infraestructure/entities/admin_form_values";
import {
  Admin,
  AdminFormValues,
} from "../../../infraestructure/entities/admin_form_values";
import { ResetPasswordValues } from "../../../infraestructure/entities/reset_password_values";
import { AdminRepositoryInf } from "../../../infraestructure/repositories/admin_repository";

export class AdminRepositoryProd implements AdminRepositoryInf {
  constructor(
    private datasource: AdminDatasourceInf
  ){}
  constructor(private datasource: AdminDatasourceInf) {}

  async registerAdmin(form: AdminFormValues): Promise<void> {
    return this.datasource.registerAdmin(form);
@@ -15,11 +17,23 @@ export class AdminRepositoryProd implements AdminRepositoryInf{
    return this.datasource.getAdminInfo(token);
  }

  async changePassword(token: string, prevPassword: string, newPassword: string): Promise<void> {
  async changePassword(
    token: string,
    prevPassword: string,
    newPassword: string
  ): Promise<void> {
    return this.datasource.changePassword(token, prevPassword, newPassword);
  }

  async getAdminsByTown(idTown: number): Promise<Admin[]> {
    return this.datasource.getAdminsByTown(idTown);
  }

  async generateResetCode(email: string): Promise<void> {
    return this.datasource.generateResetCode(email);
  }

  async resetPassword(form: ResetPasswordValues): Promise<void> {
    return this.datasource.resetPassword(form);
  }
}
+10 −3
Original line number Diff line number Diff line
import { Admin, AdminFormValues } from "../entities/admin_form_values";
import { ResetPasswordValues } from "../entities/reset_password_values";

export interface AdminDatasourceInf {
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
  changePassword(token : string, prevPassword: string, newPassword: string): Promise<void>;
  changePassword(
    token: string,
    prevPassword: string,
    newPassword: string
  ): Promise<void>;
  getAdminsByTown(idTown: number): Promise<Admin[]>;
  generateResetCode(email: string): Promise<void>;
  resetPassword(form: ResetPasswordValues): Promise<void>;
}
+10 −3
Original line number Diff line number Diff line
import { Admin, AdminFormValues } from "../entities/admin_form_values";
import { ResetPasswordValues } from "../entities/reset_password_values";

export interface AdminRepositoryInf {
  registerAdmin(form: AdminFormValues): Promise<void>;
  getAdminInfo(token: string): Promise<Admin>;
  changePassword(token : string, prevPassword: string, newPassword: string): Promise<void>;
  changePassword(
    token: string,
    prevPassword: string,
    newPassword: string
  ): Promise<void>;
  getAdminsByTown(idTown: number): Promise<Admin[]>;
  generateResetCode(email: string): Promise<void>;
  resetPassword(form: ResetPasswordValues): Promise<void>;
}