Files
gancio/client/src/api.js
2019-03-05 15:17:12 +01:00

62 lines
1.9 KiB
JavaScript

import axios from 'axios'
import store from './store'
const api = axios.create({
baseURL: process.env.NODE_ENV === 'development' ? 'http://localhost:9000/api' : '/api',
withCredentials: false,
responseType: 'json',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
function get (path) {
return api.get(path, { headers: { 'x-access-token': store.state.token } })
.then(res => res.data)
.catch(e => {
if (e.response.status === 403) {
store.commit('logout')
return false
}
})
}
function post (path, data) {
return api.post(path, data, { headers: { 'x-access-token': store.state.token } })
.then(res => res.data)
.catch(e => {
if (e.response.status === 403) {
store.commit('logout')
return false
}
})
}
function put (path, data) {
return api.put(path, data, { headers: { 'x-access-token': store.state.token } })
.then(ret => ret.data)
}
function del (path) {
return api.delete(path, { headers: { 'x-access-token': store.state.token } }).then(ret => ret.data)
}
export default {
login: (email, password) => post('/login', { email, password }),
register: user => post('/user', user),
getAllEvents: (month, year) => get(`/event/${year}/${month}/`),
addEvent: event => post('/user/event', event),
updateEvent: event => put('/user/event', event),
updatePlace: place => put('/place', place),
delEvent: eventId => del(`/user/event/${eventId}`),
getEvent: eventId => get(`/event/${eventId}`),
getMeta: () => get('/event/meta'),
getUser: () => get('/user'),
getUsers: () => get('/users'),
updateTag: (tag) => put('/tag', tag),
updateUser: user => put('/user', user),
getAuthURL: mastodonInstance => post('/user/getauthurl', mastodonInstance),
setCode: code => post('/user/code', code),
getKnowLocations: () => get('/locations'),
getKnowTags: () => get('/tags')
}