forked from verdnatura/hedera-web
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
import { defineStore } from 'pinia'
|
|
import { api, jApi } from 'boot/axios'
|
|
|
|
export const userStore = defineStore('user', {
|
|
state: () => {
|
|
const token =
|
|
sessionStorage.getItem('vnToken') ||
|
|
localStorage.getItem('vnToken')
|
|
|
|
return {
|
|
token,
|
|
id: null,
|
|
name: null,
|
|
nickname: null
|
|
}
|
|
},
|
|
|
|
getters: {
|
|
loggedIn: state => state.token != null
|
|
},
|
|
|
|
actions: {
|
|
async login (user, password, remember) {
|
|
const params = { user, password }
|
|
const res = await api.post('Accounts/login', params)
|
|
|
|
if (remember) {
|
|
localStorage.setItem('vnToken', res.data.token)
|
|
} else {
|
|
sessionStorage.setItem('vnToken', res.data.token)
|
|
}
|
|
|
|
this.$patch({
|
|
token: res.data.token,
|
|
name: user
|
|
})
|
|
},
|
|
|
|
async logout () {
|
|
if (this.token != null) {
|
|
try {
|
|
await api.post('Accounts/logout')
|
|
} catch (e) {}
|
|
localStorage.removeItem('vnToken')
|
|
sessionStorage.removeItem('vnToken')
|
|
}
|
|
this.$reset()
|
|
},
|
|
|
|
async loadData () {
|
|
const userData = await jApi.getObject(
|
|
'SELECT id, nickname FROM account.myUser'
|
|
)
|
|
|
|
this.$patch({
|
|
id: userData.id,
|
|
nickname: userData.nickname
|
|
})
|
|
}
|
|
}
|
|
})
|