11import * as constant from './constants' ;
22import * as localForage from 'localforage' ;
3+ import * as Cookies from "js-cookie" ;
34import {
45 getSessionSuccess ,
56 getSessionError ,
@@ -67,9 +68,18 @@ export class sessionService {
6768 }
6869
6970 static saveSession ( session ) {
70- return localForage . setItem ( constant . USER_SESSION , session )
71- . then ( ( ) => instance . store . dispatch ( getSessionSuccess ( ) ) )
72- . catch ( ( ) => instance . store . dispatch ( getSessionError ( ) ) ) ;
71+ return new Promise ( ( resolve ) => {
72+ localForage . setItem ( constant . USER_SESSION , session )
73+ . then ( ( ) => {
74+ instance . store . dispatch ( getSessionSuccess ( ) ) ;
75+ resolve ( ) ;
76+ } )
77+ . catch ( ( ) => {
78+ Cookies . set ( constant . USER_SESSION , session ) ;
79+ instance . store . dispatch ( getSessionSuccess ( ) ) ;
80+ resolve ( ) ;
81+ } ) ;
82+ } ) ;
7383 }
7484
7585 static loadSession ( ) {
@@ -79,7 +89,8 @@ export class sessionService {
7989 if ( currentSession ) {
8090 resolve ( currentSession ) ;
8191 } else {
82- reject ( 'Session not found' ) ;
92+ const cookies = Cookies . getJSON ( constant . USER_SESSION ) ;
93+ cookies ? resolve ( cookies ) : reject ( 'Session not found' ) ;
8394 }
8495 } )
8596 . catch ( err => reject ( err ) ) ;
@@ -89,13 +100,23 @@ export class sessionService {
89100 static deleteSession ( ) {
90101 return localForage . removeItem ( constant . USER_SESSION ) . then ( ( ) => {
91102 instance . store . dispatch ( getSessionError ( ) ) ;
92- } ) . catch ( err => err ) ;
103+ Cookies . remove ( constant . USER_SESSION ) ;
104+ } ) ;
93105 }
94106
95107 static saveUser ( user ) {
96- return localForage . setItem ( constant . USER_DATA , user )
97- . then ( ( user ) => instance . store . dispatch ( getUserSessionSuccess ( user ) ) )
98- . catch ( ( ) => instance . store . dispatch ( getUserSessionError ( user ) ) ) ;
108+ return new Promise ( ( resolve ) => {
109+ localForage . setItem ( constant . USER_DATA , user )
110+ . then ( ( user ) => {
111+ instance . store . dispatch ( getUserSessionSuccess ( user ) ) ;
112+ resolve ( ) ;
113+ } )
114+ . catch ( ( ) => {
115+ instance . store . dispatch ( getUserSessionSuccess ( user ) ) ;
116+ Cookies . set ( constant . USER_DATA , user ) ;
117+ resolve ( ) ;
118+ } ) ;
119+ } ) ;
99120 }
100121
101122 static loadUser ( ) {
@@ -105,7 +126,8 @@ export class sessionService {
105126 if ( currentUser ) {
106127 resolve ( currentUser ) ;
107128 } else {
108- reject ( 'User not found' ) ;
129+ const cookies = Cookies . getJSON ( constant . USER_DATA ) ;
130+ cookies ? resolve ( cookies ) : reject ( 'User not found' ) ;
109131 }
110132 } )
111133 . catch ( err => reject ( err ) ) ;
@@ -115,7 +137,8 @@ export class sessionService {
115137 static deleteUser ( ) {
116138 return localForage . removeItem ( constant . USER_DATA ) . then ( ( ) => {
117139 instance . store . dispatch ( getUserSessionError ( ) ) ;
118- } ) . catch ( err => err ) ;
140+ Cookies . remove ( constant . USER_DATA ) ;
141+ } ) ;
119142 }
120143}
121144
0 commit comments