From 4fa587f7e50493a28073c38ca0c5e344b9455f84 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Mon, 4 Sep 2023 17:18:50 +0700 Subject: [PATCH 1/3] Implement local storage service and add access token propery for user model --- javascript-practice/src/js/models/user.js | 3 ++- .../src/js/services/localStorageService.js | 23 +++++++++++++++++++ .../src/js/services/userService.js | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 javascript-practice/src/js/services/localStorageService.js diff --git a/javascript-practice/src/js/models/user.js b/javascript-practice/src/js/models/user.js index 3e6ab49..0d0536c 100644 --- a/javascript-practice/src/js/models/user.js +++ b/javascript-practice/src/js/models/user.js @@ -1,8 +1,9 @@ export default class User { - constructor({ email, password, walletName = '' }) { + constructor({ email, password, walletName = '', accessToken = '' }) { this.email = email; this.password = password; this.walletName = walletName; + this.accessToken = accessToken; } static createIdUser() { diff --git a/javascript-practice/src/js/services/localStorageService.js b/javascript-practice/src/js/services/localStorageService.js new file mode 100644 index 0000000..9c2d8e3 --- /dev/null +++ b/javascript-practice/src/js/services/localStorageService.js @@ -0,0 +1,23 @@ +class LocalStorageService { + constructor() { + this.localStorage = localStorage; + } + + add(key, value) { + this.localStorage.setItem(key, value); + } + + static get(key) { + this.localStorage.getItem(key); + } + + static remove(key) { + this.localStorage.removeItem(key); + } + + static clear() { + this.localStorage.clear(); + } +} + +export default new LocalStorageService(); diff --git a/javascript-practice/src/js/services/userService.js b/javascript-practice/src/js/services/userService.js index 556fe54..5d6e5a1 100644 --- a/javascript-practice/src/js/services/userService.js +++ b/javascript-practice/src/js/services/userService.js @@ -1,6 +1,7 @@ import { createToken } from '../helpers/helpers'; import User from '../models/user'; import CommonService from './commonService'; +import LocalStorageService from './localStorageService'; export default class UserService extends CommonService { constructor() { @@ -62,5 +63,7 @@ export default class UserService extends CommonService { newUserData.accessToken = createToken(); this.save(newUserData, this.defaultPath + id); + + LocalStorageService.add('accessToken', newUserData.accessToken); } } From 7e6cb8e795c6f4b2e9c1dc9359c74206aa555414 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Wed, 6 Sep 2023 10:06:53 +0700 Subject: [PATCH 2/3] Delete unnecessary code --- javascript-practice/src/js/services/localStorageService.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/javascript-practice/src/js/services/localStorageService.js b/javascript-practice/src/js/services/localStorageService.js index 9c2d8e3..e8d36cb 100644 --- a/javascript-practice/src/js/services/localStorageService.js +++ b/javascript-practice/src/js/services/localStorageService.js @@ -7,15 +7,15 @@ class LocalStorageService { this.localStorage.setItem(key, value); } - static get(key) { + get(key) { this.localStorage.getItem(key); } - static remove(key) { + remove(key) { this.localStorage.removeItem(key); } - static clear() { + clear() { this.localStorage.clear(); } } From 09d7f82813082a96ed25e182158f1ce33e4c8763 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Wed, 6 Sep 2023 10:16:12 +0700 Subject: [PATCH 3/3] Add constant for local storage key value --- javascript-practice/src/js/constants/constant.js | 6 ++++++ javascript-practice/src/js/services/userService.js | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/javascript-practice/src/js/constants/constant.js b/javascript-practice/src/js/constants/constant.js index 9a05204..7cdf304 100644 --- a/javascript-practice/src/js/constants/constant.js +++ b/javascript-practice/src/js/constants/constant.js @@ -11,9 +11,15 @@ export const MESSAGE = { DEFAULT_TITLE_ERROR_POPUP: 'Error', USER_EXIST_ERROR: 'User is exists! Please try another email!', }; + export const BTN_CONTENT = { GOT_IT: 'Got it!', OK: 'Ok', }; + +export const LOCAL_STORAGE = { + ACCESS_TOKEN: 'accessToken', +}; + export const TYPE_POPUP = { success: 'success', error: 'error' }; export const MARK_ICON = { success: 'check', error: 'error' }; diff --git a/javascript-practice/src/js/services/userService.js b/javascript-practice/src/js/services/userService.js index 0bcaef8..9821641 100644 --- a/javascript-practice/src/js/services/userService.js +++ b/javascript-practice/src/js/services/userService.js @@ -1,3 +1,4 @@ +import { LOCAL_STORAGE } from '../constants/constant'; import { createToken } from '../helpers/helpers'; import CommonService from './commonService'; import LocalStorageService from './localStorageService'; @@ -81,6 +82,9 @@ export default class UserService extends CommonService { this.save(newUserData); // Add access token to local storage - LocalStorageService.add('accessToken', newUserData.accessToken); + LocalStorageService.add( + LOCAL_STORAGE.ACCESS_TOKEN, + newUserData.accessToken, + ); } }