diff options
Diffstat (limited to 'web/composables')
| -rw-r--r-- | web/composables/fetch-favourites.ts | 23 | ||||
| -rw-r--r-- | web/composables/fetch-schedule.ts | 27 |
2 files changed, 50 insertions, 0 deletions
diff --git a/web/composables/fetch-favourites.ts b/web/composables/fetch-favourites.ts new file mode 100644 index 0000000..97b443a --- /dev/null +++ b/web/composables/fetch-favourites.ts @@ -0,0 +1,23 @@ +export default function useFetchFavourites() { + const favouritesStore = useFavouritesStore(); + const errorStore = useErrorStore(); + const config = useRuntimeConfig(); + + favouritesStore.setStatus('pending') + + useFetch(config.public.baseURL + '/favourites', { + method: 'GET', + server: false, + lazy: true, + onResponseError: ({ response }) => { + favouritesStore.setStatus('idle') + errorStore.setError(response._data.message || 'An unknown error occurred'); + }, + onResponse: ({ response }) => { + if (response._data) { + favouritesStore.setFavourites((response._data as any).data); + } + favouritesStore.setStatus('idle') + }, + }); +}
\ No newline at end of file diff --git a/web/composables/fetch-schedule.ts b/web/composables/fetch-schedule.ts new file mode 100644 index 0000000..c061d92 --- /dev/null +++ b/web/composables/fetch-schedule.ts @@ -0,0 +1,27 @@ +export default function useFetchFavourites() { + const scheduleStore = useScheduleStore(); + const errorStore = useErrorStore(); + const config = useRuntimeConfig(); + + useFetch(config.public.baseURL + '/schedule', { + method: 'GET', + server: false, + lazy: true, + onResponse: ({ response }) => { + if (!response.ok) { + if (response.status === 401) { + navigateTo({ name: 'login', state: { error: 'Sorry, your session has expired' } }); + } else { + errorStore.setError(response._data.message || 'An unknown error occurred'); + } + } + + if (response._data) { + scheduleStore.setSchedule((response._data as any).data.schedule); + errorStore.setError("Schedule set"); + } else { + errorStore.setError("Invalid response returned by server"); + } + }, + }); +}
\ No newline at end of file |
