| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import VuexORM from '@vuex-orm/core'
- import {QUERY_TYPE} from "~/types/enums";
- const cookieparser = process.server ? require('cookieparser') : undefined
- export const plugins = [
- VuexORM.install()
- ];
- export const actions = {
- /**
- * Méthode appelée lors de la phase d'initialisation de Nuxt coté serveur (SSR)
- * @param commit
- * @param dispatch
- * @param req
- * @return {Promise<void>}
- */
- async nuxtServerInit({dispatch}, {req}) {
- const initCookie = await dispatch('initCookies', {req: req})
- const updateProfile = await dispatch('updateProfile')
- },
- /**
- * Récupère et Store les Cookies Bearer et XAccessId
- * @param commit
- * @param req
- * @return {Promise<void>}
- */
- async initCookies({commit}, {req}){
- let bearer = null
- let accessId = null
- if (req.headers.cookie) {
- const parsed = cookieparser.parse(req.headers.cookie)
- try {
- bearer = parsed.BEARER
- } catch (err) {
- throw new Error(err.message)
- }
- try {
- accessId = parsed.AccessId
- } catch (err) {
- throw new Error(err.message)
- }
- }
- commit('profile/access/setBearer', bearer)
- commit('profile/access/setAccessId', accessId)
- },
- /**
- * Récupère les informations du profile connecté et update le Store Profile
- * @param dispatch
- * @param state
- * @return {Promise<void>}
- */
- async updateProfile({dispatch, state}) {
- const my_profile = await this.app.context.$dataProvider.invoke({
- type: QUERY_TYPE.DEFAULT,
- url: 'my_profile',
- id: state.profile.access.accessId
- })
- dispatch('profile/access/setProfile', my_profile)
- },
- }
|