Files
app/src/stores/User.js
T

65 lines
1.6 KiB
JavaScript

import {defineStore} from 'pinia'
import {api} from "boot/axios";
export const useUserStore = defineStore('LoggedUser', {
state: () => ({
user: {},
accessToken: null
}),
actions: {
setAccessToken(token) {
console.log(token);
if (token) {
localStorage.setItem("accessToken", token);
}
this.accessToken = localStorage.getItem("accessToken");
},
getAccessToken() {
if (!this.accessToken) {
this.setAccessToken();
}
return this.accessToken;
},
async setupCredentials() {
// TODO: aktualne se vola s kazdym prechodem mezi routami, to je urcite zbytecne!
await api.get("/me").then(({data}) => {
this.user = data;
}).catch(e => {
console.log(e);
});
},
async register(formData) {
return api.post('/registration', formData).then(response => {
const registeredUser = response.data;
const isSuccess = response.status === 201
})
},
async login(formData) {
return api.post("/login", formData).then(response => {
const data = response.data;
console.log("data", data);
this.setAccessToken(data.access_token);
this.user = data.user;
})
// console.log("login", username, password);
// Object.assign(this.user, {
// id: 1,
// email: "michal@kvacek.cz",
// name: "Michal K.",
// accessToken: "abcdef",
// avatarImageUrl: "https://via.placeholder.com/50x50"
// });
},
logout() {
Object.assign(this.user, {});
}
}
})