index.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import VuexORM from '@vuex-orm/core'
  2. import {QUERY_TYPE} from "~/types/enums";
  3. const cookieparser = process.server ? require('cookieparser') : undefined
  4. export const plugins = [
  5. VuexORM.install()
  6. ];
  7. export const actions = {
  8. /**
  9. * Méthode appelée lors de la phase d'initialisation de Nuxt coté serveur (SSR)
  10. * @param commit
  11. * @param dispatch
  12. * @param req
  13. * @return {Promise<void>}
  14. */
  15. async nuxtServerInit({dispatch}, {req}) {
  16. const initCookie = await dispatch('initCookies', {req: req})
  17. const updateProfile = await dispatch('getUserProfile')
  18. },
  19. /**
  20. * Récupère et Store les Cookies Bearer et XAccessId
  21. * @param commit
  22. * @param req
  23. * @return {Promise<void>}
  24. */
  25. async initCookies({commit}, {req}){
  26. let bearer = null
  27. let accessId = null
  28. let SwitchAccessId = null
  29. if (req.headers.cookie) {
  30. const parsed = cookieparser.parse(req.headers.cookie)
  31. try {
  32. bearer = parsed.BEARER
  33. } catch (err) {
  34. throw new Error(err.message)
  35. }
  36. try {
  37. accessId = parsed.AccessId
  38. } catch (err) {
  39. throw new Error(err.message)
  40. }
  41. try {
  42. SwitchAccessId = parsed.SwitchAccessId
  43. commit('profile/access/setSwitchId', SwitchAccessId)
  44. } catch (err) {}
  45. }
  46. commit('profile/access/setBearer', bearer)
  47. commit('profile/access/setId', accessId)
  48. },
  49. /**
  50. * Récupère les informations du profile connecté et update le Store Profile
  51. * @param dispatch
  52. * @param state
  53. * @return {Promise<void>}
  54. */
  55. async getUserProfile({dispatch, state}) {
  56. const my_profile = await this.app.context.$dataProvider.invoke({
  57. type: QUERY_TYPE.DEFAULT,
  58. url: 'my_profile'
  59. })
  60. dispatch('profile/access/setProfile', my_profile)
  61. },
  62. }