This commit is contained in:
mohadese namavar
2024-06-16 00:22:14 +04:30
commit ec84dfd222
322 changed files with 77942 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
export const useUserStore = defineStore('user', {
state: () => {
return {
id: null,
profile: {}
}
},
actions: {
async register(body) {
body.password = this.profile.password
const method = 'post'
const result = await useFetch(`/api/users/register`, { method, body })
if (result.status.value == 'success') {
this.id = result.data.value._id
this.setToken(result.data.value)
}
return result;
},
async login(form) {
const isEmail = form.username?.includes('@')
const type = isEmail ? 'email' : 'number'
const key = isEmail ? 'email' : 'phoneNumber'
const body = {
[key]: form.username,
password: form.password,
remember: form.remember
}
const method = 'post'
const result = await useFetch(`/api/users/login/${type}`, { method, body })
if (result.status.value == 'success') {
this.id = result.data.value._id
this.setToken(result.data.value)
}
return result;
},
async get() {
const { status, data, error } = await useFetch('/api/users/current', {
headers: {
Authorization: useCookie('token')
}
})
if (status.value == 'success') {
this.id = data.value._id
this.profile = data.value
const favorites = useFavoritesStore()
favorites.items = data.value.favoriteProducts
const cart = useCartStore()
cart.get()
}
},
async forgetPassword(form) {
const result = await useFetch('/api/users/forgot', {
method: 'post', body: form
})
return result;
},
setToken(data) {
const token = useCookie('token', { expires: new Date(data.expiredDate) })
token.value = data.accessToken
document.cookie
}
}
})