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

Se implementa la lógica para obtener los estados y registrar un pueblo

parent 1c77c144
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
import axios from "axios";
import { APIUrl } from "../../../constants/api_url";
import { TownDatasourceInf } from "../../../infraestructure/datasources/town_datasource";
import { StateModel } from "../../models/prod/StateModel";
import { State } from "../../../infraestructure/entities/state";
import { TownFormValues } from "../../../infraestructure/entities/town_form_values";
import UnauthorizedError from "../../../errors/UnautherizedError";

export class TownDatasourceProd implements TownDatasourceInf{
  async getStates(): Promise<State[]> {
    const {data} = await axios.get<StateModel[]>(APIUrl+"/state");
    const states = data.map((value) => {
      const state: State = {
        stateId : value.stateId,
        name: value.name,
        imageURL: value.imageURL
      }
      return state;
    })

    return states;
  }

  async registerTown(form: TownFormValues): Promise<void> {
    const formToSend = new FormData;
    formToSend.append('name',form.name);
    formToSend.append('descriptionES',form.descriptionES);
    formToSend.append('descriptionEN',form.descriptionEN);
    formToSend.append('state', form.state);
    formToSend.append('image',form.imageURL);

    const headers = {
      'Content-Type': 'multipart/form-data'
    };

    const {status, data} = await axios.post(APIUrl + '/town', formToSend,{headers});
    if (status === 401) {
      throw new UnauthorizedError({code: 401, message: 'Unauthorized'});
    }else {
      console.log(data);
    }
  }
}
 No newline at end of file