core.js 919 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import axios from "axios";
  2. export default class {
  3. constructor(vuex) {
  4. this.vuex = vuex
  5. if(process.env.NODE_ENV !== 'production') {
  6. this.api = 'http://localhost:8081'
  7. } else {
  8. this.api = 'https://live.ecconia.de'
  9. }
  10. }
  11. commit(method, data)
  12. {
  13. this.vuex.commit(method, data)
  14. }
  15. post(path, data)
  16. {
  17. return axios
  18. .post(this.api + path, data)
  19. .catch((error) => {
  20. console.error('Error: ', error)
  21. })
  22. }
  23. get(path)
  24. {
  25. return axios
  26. .get(this.api + path)
  27. .catch((error) => {
  28. console.error('Error: ', error)
  29. })
  30. }
  31. logout() {
  32. localStorage.removeItem('user');
  33. this.commit('setUser', null)
  34. }
  35. login(username, password) {
  36. //TODO: return promise somehow
  37. this.post('/login', {
  38. username: username,
  39. password: password,
  40. }).then((response) => {
  41. localStorage.setItem('user', JSON.stringify(response.data));
  42. this.commit('setUser', response.data)
  43. })
  44. }
  45. }