Skip to content

Commit db8266c

Browse files
committed
⭐ feat(api): fetch car details from api
1 parent cad1b2b commit db8266c

File tree

5 files changed

+17
-15
lines changed

5 files changed

+17
-15
lines changed

composables/useFetchCar.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export default async (id) => {
2+
const { data, error } = await useFetch(`/api/car/${id}`);
3+
4+
if (error.value) {
5+
throw createError({
6+
statusCode: error.value.statusCode,
7+
statusMessage: error.value.statusMessage,
8+
});
9+
}
10+
11+
return { data };
12+
};

composables/useFetchCars.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ export default async (city, filters) => {
1212
});
1313
}
1414

15-
return data;
15+
return { cars: data };
1616
};

pages/car/[name]-[id].vue

+2-12
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,9 @@
11
<script setup>
22
const route = useRoute();
3+
4+
const { data: car } = await useFetchCar(route.params.id);
35
const { toTitleCase } = useUtilities();
4-
const { cars } = useCars();
56
6-
const car = computed(() => {
7-
const carId = parseInt(route.params.id);
8-
return cars.find((car) => car.id === carId);
9-
});
10-
console.log(car);
11-
if (!car.value) {
12-
throw createError({
13-
statusCode: 404,
14-
message: `Car with id ${route.params.id} does not exist`,
15-
});
16-
}
177
useHead({ title: toTitleCase(route.params.name) });
188
199
definePageMeta({

pages/city/[city]/car/[[make]].vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup>
22
const route = useRoute();
3-
const cars = await useFetchCars(route.params.city, {
3+
const { cars } = await useFetchCars(route.params.city, {
44
minPrice: route.query.minPrice,
55
maxPrice: route.query.maxPrice,
66
make: route.params.make,

server/api/car/[id].js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default defineEventHandler((event) => {
88
if (!car) {
99
throw createError({
1010
statusCode: 404,
11-
message: `Car with id ${id} does not exist`,
11+
statusMessage: `Car with id ${id} does not exist`,
1212
});
1313
}
1414

0 commit comments

Comments
 (0)