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

Se agrego la lógica para registrar un lugar

parent 0607c5c1
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
import axios from "axios";
import { APIUrl } from "../../../constants/api_url";
import { PlaceDatasourceInf } from "../../../infraestructure/datasources/place_datasource";
import { AvailableDays, PlaceFormValues } from "../../../infraestructure/entities/place";

export class PlaceDatasourceProd implements PlaceDatasourceInf{
  async registerPlace(form: PlaceFormValues): Promise<void> {
    const formToSend = new FormData();
    formToSend.append('available', form.available);
    formToSend.append('idTown', String(form.idTown));
    formToSend.append('name', form.name);
    formToSend.append('descriptionES', form.descriptions[0]);
    formToSend.append('descriptionEN', form.descriptions[1]);
    formToSend.append('image', form.imagesList[0]);
    formToSend.append('latitude', String(form.latitude));
    formToSend.append('longitude', String(form.longitude));
    formToSend.append('openAt', String(form.openAt));
    formToSend.append('closeAt', String(form.closeAt));

    if(form.available === AvailableDays.CUSTOM){
      formToSend.append('startDate', String(form.startDate));
      formToSend.append('endDate', String(form.endDate));
    }

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

    await axios.post(APIUrl + '/place', formToSend,{headers});
  } 
}
 No newline at end of file
+12 −0
Original line number Diff line number Diff line
import { PlaceDatasourceInf } from "../../../infraestructure/datasources/place_datasource";
import { PlaceFormValues } from "../../../infraestructure/entities/place";
import { PlaceRepositoryInf } from "../../../infraestructure/repositories/place_repository";

export class PlaceRepositoryProd implements PlaceRepositoryInf{
  constructor(
    private datasouce: PlaceDatasourceInf
  ){}
  async registerPlace(form: PlaceFormValues): Promise<void> {
    return this.datasouce.registerPlace(form);
  }
}
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@ import { languaguesList } from "../constants/languages";
import { useGetStatesList } from "./useGetStatesList";
import { useTown } from "./useTown";
import { MIN_NUMBER_PLACE_IMAGES } from "../constants/images_nuber";
import { PlaceDatasourceProd } from "../data/datasources/prod/place_datasource";
import { PlaceRepositoryProd } from "../data/repositories/prod/place_repository";

const placeDatasouce = new PlaceDatasourceProd();
const placeRepository = new PlaceRepositoryProd(placeDatasouce);

const resolver: Resolver<PlaceFormValues> = async (data) => {
  const errors: FieldErrors<PlaceFormValues> = {};
@@ -175,7 +180,7 @@ export const usePlaceRegister = () => {
  const onSubmit : SubmitHandler<PlaceFormValues> = (data: PlaceFormValues) => {
    const fetch = async () => {
      try{
        console.log(data);
        await placeRepository.registerPlace(data);
      }catch(error: any){
        if(axios.isAxiosError(error)){
          error as AxiosError;
+5 −0
Original line number Diff line number Diff line
import { PlaceFormValues } from "../entities/place";

export interface PlaceDatasourceInf{
    registerPlace(form: PlaceFormValues): Promise<void>;
}
 No newline at end of file
+5 −0
Original line number Diff line number Diff line
import { PlaceFormValues } from "../entities/place";

export interface PlaceRepositoryInf{
    registerPlace(form: PlaceFormValues): Promise<void>;
}
 No newline at end of file