Commit b7c30838 authored by Lorenzo Trujillo Rojas's avatar Lorenzo Trujillo Rojas
Browse files

Se implementaron los metodos de obtener pueblos y obtener actividades en el...

Se implementaron los metodos de obtener pueblos y obtener actividades en el datasource de producción
parent 396c7d50
Loading
Loading
Loading
Loading
+29 −6
Original line number Diff line number Diff line
@@ -6,6 +6,10 @@ 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";
import { TownModel } from "../../models/prod/town_model";
import { townModelToEntity } from "../../utils/town_utils";
import { ActivityModel } from "../../models/prod/activity_model";
import { placeModelToEntity } from "../../utils/place_utils";

export class StateDataSourceProd implements StateDataSource {
    async getStates(): Promise<StateEntity[]> {
@@ -15,14 +19,33 @@ export class StateDataSourceProd implements StateDataSource {
        }
        return data.map(stateModelToEntity);
    }
    getTowns(stateId: number): Promise<TownEntity[]> {
        throw new Error("Method not implemented.");
    async getTowns(stateId: number): Promise<TownEntity[]> {
        // TODO: get lang from user preferences
        const {status, data} = await axios.get<TownModel[]>(API_URL + '/state/' + stateId + '/town?lang=es');
        if (status !== 200) {
            throw new Error('Error fetching towns');
        }
        return data.map(townModelToEntity);
    }
    async getTownActivities(townId: number): Promise<ActivityInfoEntity[]> {
        // TODO: get lang from user preferences
        // TODO: get townId from user preferences
        console.log('townId', townId);
        const {status, data} = await axios.get<ActivityModel[]>(API_URL + `/place/town/${townId}/place?lang=es`);
        if (status !== 200) {
            throw new Error('Error fetching activities');
        }
        console.log('data', data);
        return data.map(placeModelToEntity);
    }
    getTownActivities(townId: number): Promise<ActivityInfoEntity[]> {
        throw new Error("Method not implemented.");
    async getActivityInfo(activityId: number): Promise<ActivityInfoEntity | undefined> {
        // TODO: get lang from user preferences
        // TODO: get townId from user preferences
        const {status, data} = await axios.get<ActivityModel>(API_URL + `/place/${activityId}`);
        if (status !== 200) {
            throw new Error('Error fetching activity');
        }
    getActivityInfo(activityId: number): Promise<ActivityInfoEntity | undefined> {
        throw new Error("Method not implemented.");
        return placeModelToEntity(data);
    }

}
 No newline at end of file