From 4567f79dc3404c6ef6d4e2c07fd6ff13898f8951 Mon Sep 17 00:00:00 2001 From: Loi Phan Date: Thu, 31 Aug 2023 11:30:02 +0700 Subject: [PATCH] Add method and optimized code - Add some method in userService - Optimized code in registerController --- .../src/js/controllers/registerController.js | 24 +++++++++--------- .../src/js/services/userService.js | 25 ++++++++++++++++--- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/javascript-practice/src/js/controllers/registerController.js b/javascript-practice/src/js/controllers/registerController.js index 7fa6f8c..d3d710e 100644 --- a/javascript-practice/src/js/controllers/registerController.js +++ b/javascript-practice/src/js/controllers/registerController.js @@ -1,21 +1,21 @@ export default class RegisterController { constructor(service, view) { - this.view = view; + this.registerView = view.registerView; this.service = service; } async controlRegister() { try { // Load spinner - this.view.registerView.toogleLoaderSpinner(); + this.registerView.toogleLoaderSpinner(); // Get data from form - const user = this.view.registerView.getDataFromForm(); + const user = this.registerView.getDataFromForm(); // Save user if (user) { // Check user exist - const userExist = await this.service.userService.checkExistUserByEmail( + const userExist = await this.service.userService.checkUserExist( user.email, ); if (userExist) { @@ -23,24 +23,24 @@ export default class RegisterController { } else { await this.service.userService.saveUser(user); // Show popup success - this.view.registerView.initRegisterSuccessPopup(); - this.view.registerView.tooglePopupForm(); + this.registerView.initRegisterSuccessPopup(); + this.registerView.tooglePopupForm(); } } } catch (error) { // Show popup error - this.view.registerView.initErrorPopup(error); - this.view.registerView.tooglePopupForm(); + this.registerView.initErrorPopup(error); + this.registerView.tooglePopupForm(); } // Close spinner - this.view.registerView.toogleLoaderSpinner(); + this.registerView.toogleLoaderSpinner(); } init() { - if (this.view.registerView.registerForm !== null) { - this.view.registerView.addHandlerForm(this.controlRegister.bind(this)); - this.view.registerView.addHandlerInputFormChange(); + if (this.registerView.registerForm !== null) { + this.registerView.addHandlerForm(this.controlRegister.bind(this)); + this.registerView.addHandlerInputFormChange(); } } } diff --git a/javascript-practice/src/js/services/userService.js b/javascript-practice/src/js/services/userService.js index 2b67ec8..9b3f631 100644 --- a/javascript-practice/src/js/services/userService.js +++ b/javascript-practice/src/js/services/userService.js @@ -23,11 +23,11 @@ export default class UserService extends CommonService { } /** - * Check user exist in database by email + * Get user by email * @param {string} email Email need to be check - * @returns {boolean} Return true if email exist and otherwise is false + * @returns {Promise || number} Return id user when exist, otherwise will undefined */ - async checkExistUserByEmail(email) { + async getUserIdByEmail(email) { this.connectToDb(); const existUser = FirebaseService.findKeyByPropery( this.path, @@ -38,4 +38,23 @@ export default class UserService extends CommonService { return result; } + + /** + * Check user exist in database + * @param {string} email Email to find user + * @returns {boolean} Return true if find, otherwise return false + */ + async checkUserExist(email) { + const userExist = await this.getUserIdByEmail(email); + if (userExist) { + return true; + } + return false; + } + + async getUserByEmail(email) { + const id = await this.getUserIdByEmail(email); + const user = await FirebaseService.getDataFromId(id, this.path); + return new User(user); + } }