2019-09-09 09:31:08 +02:00
|
|
|
import { AUTH_ACCESS_TOKEN, AUTH_REFRESH_TOKEN, AUTH_USER_EMAIL, AUTH_USER_ID, AUTH_USER_ROLE } from '@/constants';
|
2019-08-12 16:04:16 +02:00
|
|
|
import { ILogin, IToken } from '@/types/login.model';
|
|
|
|
import { UPDATE_CURRENT_USER_CLIENT } from '@/graphql/user';
|
|
|
|
import { onLogout } from '@/vue-apollo';
|
|
|
|
import ApolloClient from 'apollo-client';
|
2019-09-09 09:31:08 +02:00
|
|
|
import { ICurrentUserRole } from '@/types/current-user.model';
|
2019-01-11 13:58:29 +01:00
|
|
|
|
|
|
|
export function saveUserData(obj: ILogin) {
|
|
|
|
localStorage.setItem(AUTH_USER_ID, `${obj.user.id}`);
|
2019-01-18 14:47:10 +01:00
|
|
|
localStorage.setItem(AUTH_USER_EMAIL, obj.user.email);
|
2019-09-09 09:31:08 +02:00
|
|
|
localStorage.setItem(AUTH_USER_ROLE, obj.user.role);
|
2019-08-12 16:04:16 +02:00
|
|
|
|
|
|
|
saveTokenData(obj);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function saveTokenData(obj: IToken) {
|
|
|
|
localStorage.setItem(AUTH_ACCESS_TOKEN, obj.accessToken);
|
|
|
|
localStorage.setItem(AUTH_REFRESH_TOKEN, obj.refreshToken);
|
2019-01-11 13:58:29 +01:00
|
|
|
}
|
2019-01-18 14:47:10 +01:00
|
|
|
|
|
|
|
export function deleteUserData() {
|
2019-09-09 09:31:08 +02:00
|
|
|
for (const key of [AUTH_USER_ID, AUTH_USER_EMAIL, AUTH_ACCESS_TOKEN, AUTH_REFRESH_TOKEN, AUTH_USER_ROLE]) {
|
2019-01-18 14:47:10 +01:00
|
|
|
localStorage.removeItem(key);
|
|
|
|
}
|
|
|
|
}
|
2019-08-12 16:04:16 +02:00
|
|
|
|
|
|
|
export function logout(apollo: ApolloClient<any>) {
|
|
|
|
apollo.mutate({
|
|
|
|
mutation: UPDATE_CURRENT_USER_CLIENT,
|
|
|
|
variables: {
|
|
|
|
id: null,
|
|
|
|
email: null,
|
|
|
|
isLoggedIn: false,
|
2019-09-09 09:31:08 +02:00
|
|
|
role: ICurrentUserRole.USER,
|
2019-08-12 16:04:16 +02:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
deleteUserData();
|
|
|
|
|
|
|
|
onLogout();
|
|
|
|
}
|