diff --git a/client/app/services/category.service.ts b/client/app/services/category.service.ts index 5229cc3..ca3d623 100644 --- a/client/app/services/category.service.ts +++ b/client/app/services/category.service.ts @@ -2,17 +2,18 @@ import { cloneDeep } from 'lodash'; import axios from '../axios/axios'; import { CategoryModel } from '../model'; -export class CategoryService { - private static categoryCache: CategoryModel[]; - - public static async getCategories(): Promise { - // return cache if it exists - if (CategoryService.categoryCache) { - return Promise.resolve(cloneDeep(CategoryService.categoryCache)); - } - - const res = await axios.get('/api/category'); - CategoryService.categoryCache = cloneDeep(res.data.data); - return res.data.data; +let categoryCache: CategoryModel[]; +const getCategories = async () => { + // return cache if it exists + if (categoryCache) { + return Promise.resolve(cloneDeep(categoryCache)); } + + const res = await axios.get('/api/category'); + categoryCache = cloneDeep(res.data.data); + return res.data.data; } + +export const CategoryService = { + getCategories, +}; diff --git a/client/app/services/user.service.ts b/client/app/services/user.service.ts index ca6da2d..1da3c27 100644 --- a/client/app/services/user.service.ts +++ b/client/app/services/user.service.ts @@ -1,24 +1,27 @@ import axios from '../axios/axios'; import { UserModel } from '../model'; -export class UserService { +const storeUser = (user: UserModel): void => { + localStorage.setItem('user', JSON.stringify(user)); +} - public static storeUser(user: UserModel): void { - localStorage.setItem('user', JSON.stringify(user)); - } +const getUser = (): UserModel => { + const u = localStorage.getItem('user'); + return u ? JSON.parse(u) : null; +} - public static getUser(): UserModel { - const u = localStorage.getItem('user'); - return u ? JSON.parse(u) : null; - } - - // fetch user and store in local storage - public static async authorize(code: string): Promise { - try { - const res = await axios.post('/api/battlenet/authorize', { code }); - UserService.storeUser(res.data.data); - } catch (e) { - console.error(e); - } +// fetch user and store in local storage +const authorize = async (code: string): Promise => { + try { + const res = await axios.post('/api/battlenet/authorize', { code }); + UserService.storeUser(res.data.data); + } catch (e) { + console.error(e); } } + +export const UserService = { + storeUser, + getUser, + authorize, +}