mirror of
https://github.com/Spythere/pragotron-td2.git
synced 2026-05-02 21:18:13 +00:00
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { defineStore } from 'pinia';
|
|
import type { API } from '../typings/api';
|
|
|
|
export enum DataStatus {
|
|
LOADING = 0,
|
|
LOADED = 1,
|
|
ERROR = 2
|
|
}
|
|
|
|
export const useApiStore = defineStore('api', {
|
|
state() {
|
|
return {
|
|
baseURL: 'https://stacjownik.spythere.eu',
|
|
|
|
activeData: undefined as API.ActiveData.Response | undefined,
|
|
stationData: undefined as API.Sceneries.Response | undefined,
|
|
|
|
dataStatuses: {
|
|
activeData: DataStatus.LOADING,
|
|
stationData: DataStatus.LOADING
|
|
}
|
|
};
|
|
},
|
|
|
|
actions: {
|
|
async fetchActiveData() {
|
|
try {
|
|
const response = await fetch(`${this.baseURL}/api/getActiveData`);
|
|
const responseData: API.ActiveData.Response = await response.json();
|
|
|
|
this.dataStatuses.activeData = DataStatus.LOADED;
|
|
this.activeData = responseData;
|
|
} catch (error) {
|
|
this.dataStatuses.activeData = DataStatus.ERROR;
|
|
|
|
console.error('Wystąpił błąd podczas pobierania danych:', error);
|
|
}
|
|
},
|
|
|
|
async fetchSceneriesData() {
|
|
try {
|
|
const response = await fetch(`${this.baseURL}/api/getSceneries`);
|
|
const responseData: API.Sceneries.Response = await response.json();
|
|
|
|
this.dataStatuses.stationData = DataStatus.LOADED;
|
|
this.stationData = responseData;
|
|
} catch (error) {
|
|
this.dataStatuses.stationData = DataStatus.ERROR;
|
|
|
|
console.error('Wystąpił błąd podczas pobierania danych:', error);
|
|
}
|
|
}
|
|
}
|
|
});
|