Files
station-manager-2.0/src/mixins/dataMixin.ts
T

46 lines
1.1 KiB
TypeScript

import { defineComponent } from 'vue';
import { useStore } from '../store';
import axios from 'axios';
export default defineComponent({
setup() {
return {
store: useStore(),
};
},
data() {
return {
API_URL: import.meta.env.PROD ? 'https://stacjownik.eu-4.evennode.com' : import.meta.env.VITE_API_URL,
};
},
methods: {
async loadData() {
try {
this.store.dataState = 'LOADING';
const data = (
await axios.get(`${this.API_URL}/api/getSceneries?time=${Date.now()}`, {
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${this.store.token}`,
},
})
).data;
this.store.backupList = JSON.parse(JSON.stringify(data));
this.store.stationList = data;
this.store.unsavedChanges = false;
this.store.changeList = [];
this.store.dataState = 'LOADED';
} catch (error) {
this.store.dataState = 'ERROR';
this.store.token = '';
this.store.isAuthorized = false;
}
},
},
});