Commit 3e8f9de2 authored by Lorenzo Trujillo Rojas's avatar Lorenzo Trujillo Rojas
Browse files

Se implementó el metodo para obtener los estados desde la api de producción

parent aa8018c3
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
import axios from "axios";
import { StateDataSource } from "../../../domain/datasources/state_datasource";
import { ActivityInfoEntity } from "../../../domain/entities/activity_info_entity";
import { StateEntity } from "../../../domain/entities/state_entity";
import { TownEntity } from "../../../domain/entities/town_entity";
import { API_URL } from "../../../common/constants/api";
import { StateModel } from "../../models/prod/states_model";
import { stateModelToEntity } from "../../utils/states_utils";

export class StateDataSourceProd implements StateDataSource {
    getStates(): Promise<StateEntity[]> {
        throw new Error("Method not implemented.");
    async getStates(): Promise<StateEntity[]> {
        const {status, data} = await axios.get<StateModel[]>(API_URL + '/state');
        if (status !== 200) {
            throw new Error('Error fetching states');
        }
        return data.map(stateModelToEntity);
    }
    getTowns(stateId: number): Promise<TownEntity[]> {
        throw new Error("Method not implemented.");
+5 −0
Original line number Diff line number Diff line
export interface StateModel {
    stateId: number,
    name: string,
    imageURL: string
}
 No newline at end of file
+17 −0
Original line number Diff line number Diff line
import { API_URL } from "../../common/constants/api";
import { StateEntity } from "../../domain/entities/state_entity";
import { StateModel } from "../models/prod/states_model";

export const stateModelToEntity = (stateModel: StateModel): StateEntity => {
    //TODO: Fix this
    let imageURL = stateModel.imageURL.split('/');
    imageURL = imageURL.filter((item) => item !== '' && item !== 'http:' && item !== 'https:');
    imageURL[0] = API_URL;
    stateModel.imageURL = imageURL.join('/');
    console.log(stateModel.imageURL);
    return {
        id: stateModel.stateId,
        name: stateModel.name,
        imageUri: stateModel.imageURL
    }
}
 No newline at end of file