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

Se crea la lógica del inicio de sesión

parent 1f00f2e7
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
import { LoginDatasourceInf } from "../../../infraestructure/datasources/login_datasource";
import { LoginFormValues } from "../../../infraestructure/entities/login_form_values";
import axios from "axios";
import { LoggedInUser } from "../../../infraestructure/entities/user";
import { LoggedInUserModel } from "../../models/prod/LoggedInUserModel";
import { UserRole } from "../../../constants/roles";
import { APIUrl } from "../../../constants/api_url";

export class LoginDatasourceProd implements LoginDatasourceInf{
    async getToken(form: LoginFormValues): Promise<LoggedInUser> {
        const {email, password} = form;
        const {data} = await axios.post<LoggedInUserModel>(
            APIUrl + "/api/auth/login",
            {
                email: email,
                password: password,
            }
        );
        const user: LoggedInUser = {
            user: {
                email: data.email,
                role: data.role === UserRole.SUPERADMIN ? UserRole.SUPERADMIN : UserRole.ADMIN,
            },
            token: data.token,
        };
        
        return user;
    }
}
 No newline at end of file
+13 −0
Original line number Diff line number Diff line
import { LoginDatasourceInf } from "../../../infraestructure/datasources/login_datasource";
import { LoginFormValues } from "../../../infraestructure/entities/login_form_values";
import { LoggedInUser } from "../../../infraestructure/entities/user";
import { LoginRepositoryInf } from "../../../infraestructure/repositories/login_repository";

export class LoginRepositoryProd implements LoginRepositoryInf{
    constructor(
        private datasource: LoginDatasourceInf
    ){}
    async getToken(form: LoginFormValues): Promise<LoggedInUser> {
        return this.datasource.getToken(form);
    }
}
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
import { LoginFormValues } from "../entities/login_form_values";
import { LoggedInUser } from "../entities/user";

export interface LoginDatasourceInf {
    getToken(form: LoginFormValues): Promise<LoggedInUser>;
}
+6 −0
Original line number Diff line number Diff line
import { LoginFormValues } from "../entities/login_form_values";
import { LoggedInUser } from "../entities/user";

export interface LoginRepositoryInf{
    getToken(form: LoginFormValues): Promise<LoggedInUser>;
}
 No newline at end of file