Files
pronature-platform/src/plugins/api.js
T
2026-02-05 13:50:43 +02:00

88 lines
3.0 KiB
JavaScript

import axios from 'axios';
import Utils from '#/app/Utils';
const $ax = axios.create({
baseURL: '/api/',
transformRequest: [
(data, headers)=>{
if (data && !(data instanceof FormData)){
data = Utils.deepMerge({}, data, (k, v)=>{
return k.startsWith('__') ? undefined : v;
})
data = JSON.stringify(data);
headers['Content-Type'] = 'application/json;charset=utf-8';
}
return data;
}
, ...axios.defaults.transformRequest
]
})
export default {
install: (app, options) => {
app.config.globalProperties.$api = {
gameObject:{
async save(data){
return await $ax.put('/game-object', data);
},
async load(id){
return await $ax.get(`/game-object/${id}`);
},
async search(query){
return await $ax.post('/game-object', query);
},
async remove(id){
return await $ax.delete(`/game-object/${id}`)
}
},
scenario:{
async save(data){
return await $ax.put('/scenario', data);
},
async load(id){
return await $ax.get(`/scenario/${id}`);
},
async search(query){
return await $ax.post('/scenario', query);
},
async remove(id){
return await $ax.delete(`/scenario/${id}`)
}
},
game:{
async save(data){
return await $ax.put('/game', data);
},
async load(id){
return await $ax.get(`/game/${id}`);
},
async search(query){
return await $ax.post('/game', query);
},
async remove(id){
return await $ax.delete(`/game/${id}`)
}
},
user:{
async tm(action, object, data){
return await $ax.post('/user/tm', {action, object, data});
},
async signin(data){
return await $ax.post('/user/signin', data);
},
async signup(data){
return await $ax.post('/user/signup', data);
},
async signout(){
return await $ax.get('/user/signout');
},
async load(){
return await $ax.get('/user/info');
},
async update(data){
return await $ax.post('/user/update', data);
}
}
}
}
}