You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/services/storage.services.js

160 lines
4.0 KiB

import qs from 'qs';
const TOKEN_KEY = 'access_token'
const USER = 'user'
const CATEGORYNAME = 'category_name'
const PERMISSION = 'permission'
const VIRTUALACTIVITY = 'virtual_activity'
/**
* Manage the how Access Tokens are being stored and retreived from storage.
*
* Current implementation stores to localStorage. Local Storage should always be
* accessed through this instace.
**/
const TokenService = {
getToken() {
return localStorage.getItem(TOKEN_KEY)
},
saveToken(accessToken = null) {
localStorage.setItem(TOKEN_KEY, accessToken)
},
removeToken() {
localStorage.removeItem(TOKEN_KEY)
},
}
const CategoryNameService = {
get() {
if (localStorage.getItem(CATEGORYNAME)) {
return qs.parse(localStorage.getItem(CATEGORYNAME))
}
return null;
},
save(category_name = null) {
category_name = qs.stringify(category_name);
localStorage.setItem(CATEGORYNAME, category_name)
},
remove() {
localStorage.removeItem(CATEGORYNAME)
},
}
const UserService = {
get() {
if (localStorage.getItem(USER)) {
return qs.parse(localStorage.getItem(USER))
}
return null;
},
save(user = null) {
user = qs.stringify(user);
localStorage.setItem(USER, user)
},
remove() {
localStorage.removeItem(USER)
},
}
const PermissionService = {
get() {
if (localStorage.getItem(PERMISSION)) {
return qs.parse(localStorage.getItem(PERMISSION))
}
return null;
},
save(permission = null) {
permission = qs.stringify(permission);
localStorage.setItem(PERMISSION, permission)
},
remove() {
localStorage.removeItem(PERMISSION)
},
}
const VirtualActivityService = {
get() {
if (localStorage.getItem(VIRTUALACTIVITY)) {
return qs.parse(localStorage.getItem(VIRTUALACTIVITY))
}
return null;
},
save(virtualActivity = null) {
virtualActivity = qs.stringify(virtualActivity);
localStorage.setItem(VIRTUALACTIVITY, virtualActivity)
},
remove() {
localStorage.removeItem(PERMISSION)
},
}
const Paginate = {
get(SERVICE) {
if (localStorage.getItem(SERVICE)) {
let service = qs.parse(localStorage.getItem(SERVICE), { strictNullHandling: true });
if (typeof service.pagination !== 'undefined' && service.pagination) {
let pagination = {};
for(let key in service.pagination) {
pagination[key] = Number(service.pagination[key])
}
return pagination
}
}
return null;
},
save(SERVICE, pagination = null ) {
let service = null;
if (localStorage.getItem(SERVICE)) {
service = qs.parse(localStorage.getItem(SERVICE));
} else {
service = {};
}
service['pagination'] = pagination;
let service_paginate = qs.stringify(service);
localStorage.setItem(SERVICE, service_paginate)
},
remove(SERVICE) {
this.save(SERVICE);
},
};
const Sort = {
get(SERVICE) {
if (localStorage.getItem(SERVICE)) {
let service = qs.parse(localStorage.getItem(SERVICE), { strictNullHandling: true });
if (typeof service.sort !== 'undefined' && service.sort) {
return service.sort
}
}
return null;
},
save(SERVICE, sort = '') {
let service = null;
if (localStorage.getItem(SERVICE)) {
service = qs.parse(localStorage.getItem(SERVICE));
} else {
service = {};
}
service['sort'] = sort;
let service_sort = qs.stringify(service);
localStorage.setItem(SERVICE, service_sort)
},
remove(SERVICE) {
this.save(SERVICE);
},
};
export { TokenService, UserService, PermissionService, VirtualActivityService, CategoryNameService, Paginate, Sort }