Busca por itinerários consome dados do backend

This commit is contained in:
Matheus Albino Brunhara
2022-09-03 21:57:00 -03:00
parent 13238c4263
commit 93776a582f
5 changed files with 58 additions and 23 deletions

View File

@@ -7,7 +7,7 @@ const transportsRoutes = {
url: `${transportsRoutesDefault}`
},
search: {
url: `${transportsRoutesDefault}/search`
url: `${transportsRoutesDefault}/search/inradius`
},
update: {
url: `${transportsRoutesDefault}`

View File

@@ -15,6 +15,7 @@ import {
IonPage,
IonRow,
IonTitle,
IonToast,
IonToolbar,
} from "@ionic/react";
import {
@@ -40,9 +41,17 @@ import GooglePlacesAutocomplete, {
} from "react-google-places-autocomplete";
import { Itinerary } from "../models/itinerary.model";
import { PageHeader } from "../components/PageHeader";
import { closeToast } from "../services/utils";
import { Color } from "@ionic/core";
const BuscarItinerario: React.FC = () => {
const history = useHistory();
const [showToast, setShowToast] = useState(false);
const [messageToast, setMessageToast] = useState("");
const [toastColor, setToastColor] = useState<Color>("primary");
const [addressFrom, setAddressFrom] = useState<any>("");
const [coordinatesFrom, setCoordinatesFrom] = useState<any>("");
const [addressTo, setAddressTo] = useState<any>("");
@@ -107,9 +116,27 @@ const BuscarItinerario: React.FC = () => {
return;
}
const itinerariesList = await itinerariesService.getAllItineraries();
await itinerariesService
.searchItineraries({
coordinatesFrom,
coordinatesTo,
})
.then((response) => {
// if (response.status === "error") {
// setToastColor("danger");
// setMessageToast(response.message);
// setShowToast(true);
setItinerariesList(itinerariesList);
// return;
// }
setItinerariesList(response);
})
.catch((err) => {
setToastColor("danger");
setMessageToast(err);
setShowToast(true);
});
}
return (
@@ -252,7 +279,13 @@ const BuscarItinerario: React.FC = () => {
<IonItemDivider color="secondary">Resultados</IonItemDivider>
{itinerariesList.map((itinerary, index) => {
return (
<IonCard button key={index} onClick={() => { history.push(`/itinerary/${itinerary.id_itinerary}`) }}>
<IonCard
button
key={index}
onClick={() => {
history.push(`/itinerary/${itinerary.id_itinerary}`);
}}
>
<IonCardHeader>
<IonCardTitle>{itinerary.itinerary_nickname}</IonCardTitle>
<IonCardSubtitle>
@@ -277,6 +310,14 @@ const BuscarItinerario: React.FC = () => {
) : (
<></>
)}
<IonToast
color={toastColor}
isOpen={showToast}
onDidDismiss={() => closeToast(setShowToast)}
message={messageToast}
duration={2500}
/>
</IonContent>
</IonPage>
);

View File

@@ -86,8 +86,6 @@ const PerfilEditar: React.FC = () => {
birth_date: userData.birth_date,
bio: userData.bio,
});
console.log(inputValues);
}, [userData]);
const handleUpdateUserData = () => {

View File

@@ -19,15 +19,9 @@ function updateHeader() {
}
}
export interface GetItinerariesRequest {
coordinatesFrom: {
export interface Coordinates {
lat: number,
lng: number
},
coordinatesTo: {
lat: number,
lng: number
}
}
export async function get() {
@@ -37,9 +31,9 @@ export async function get() {
return response.data;
}
export async function search(coordinates: GetItinerariesRequest) {
export async function search(coordinatesOrigin: Coordinates, coordinatesDestination: Coordinates) {
updateHeader();
const response = await instance.get(transportsRoutes.get.url + `/${coordinates}`, { headers: header });
const response = await instance.post(transportsRoutes.search.url, { coordinatesOrigin, coordinatesDestination }, { headers: header });
return response.data;
}

View File

@@ -1,17 +1,17 @@
import * as itinerariesRoutes from '../api/itineraries';
interface CoordinatesRequest {
coordinatesFrom:{
coordinatesFrom: {
lat: number,
lng: number
},
coordinatesTo:{
coordinatesTo: {
lat: number,
lng: number
}
}
export async function getAllItineraries() : Promise<any> {
export async function getAllItineraries(): Promise<any> {
let res: any;
try {
@@ -24,13 +24,15 @@ export async function getAllItineraries() : Promise<any> {
}
export async function searchItineraries(request: CoordinatesRequest) : Promise<any> {
let res
export async function searchItineraries({ coordinatesFrom, coordinatesTo }: CoordinatesRequest): Promise<any> {
let res: any
try {
let res : any = await itinerariesRoutes.search(request);
res = await itinerariesRoutes.search(coordinatesFrom, coordinatesTo);
} catch (error) {
// TODO
}
return res.data
}
export default { getAllItineraries, searchItineraries }