Format code, add comments and fix typo

This commit is contained in:
2023-09-05 10:15:00 +07:00
parent bfede29371
commit 51c84a7c82
4 changed files with 42 additions and 8 deletions
@@ -7,13 +7,23 @@ export default class CommonService {
this.firebaseService = FirebaseService;
}
/**
* Connect to Firebase Databse
*/
connectToDb() {
this.firebaseService.reconnect();
}
async findKeyByProperty(property, value, path = this.defaultPath) {
/**
* Find the id of data on database
* @param {string} property The property want to get value
* @param {string} value The value of property
* @param {path} path The path of datbase
* @returns {string} The id of data object
*/
async findIdByProperty(property, value, path = this.defaultPath) {
this.connectToDb();
const existUser = this.firebaseService.findKeyByPropery(
const existUser = this.firebaseService.findIdByProperty(
path,
property,
value,
@@ -23,6 +33,11 @@ export default class CommonService {
return result;
}
/**
* Save data on database
* @param {*} data The data wants to save on database
* @param {string} path The path of database
*/
async save(data, path = this.defaultPath) {
this.connectToDb();
const saveUser = this.firebaseService.save(data, path);
@@ -30,11 +45,17 @@ export default class CommonService {
await timeOutConnect(saveUser);
}
/**
*
* @param {string} id The string of data object
* @param {string} path The path of database
* @returns {Object || null} Return the object if has, otherwise return null
*/
async getDataFromId(id, path = this.defaultPath) {
this.connectToDb();
const result = await this.firebaseService.getDataFromId(id, path);
const data = await timeOutConnect(result);
if (data) return data;
return null;
@@ -43,13 +43,13 @@ class FirebaseService {
}
/**
* Find the key of value by property in database
* Find id of value by property in database
* @param {string} path The path of database to be found
* @param {string} property The property of the value need to be found
* @param {value} value The value to compare in database
* @returns {Promise} Return the relsoves when find completed
*/
findKeyByPropery(path, property, value) {
findIdByProperty(path, property, value) {
return new Promise((resolve) => {
onValue(
ref(this.db, path),
@@ -73,6 +73,12 @@ class FirebaseService {
});
}
/**
* Get data object from Id
* @param {string} id The id of data object
* @param {string} path The path of data save in database
* @returns {Promise} Return new Promise
*/
getDataFromId(id, path) {
return new Promise((resolve) => {
onValue(
@@ -25,7 +25,7 @@ export default class UserService extends CommonService {
* @returns {Promise || number} Return id user when exist, otherwise will undefined
*/
getUserIdByEmail(email) {
return this.findKeyByProperty('email', email);
return this.findIdByProperty('email', email);
}
/**
@@ -30,7 +30,7 @@ export default class LoginView extends CommonLoginRegisterView {
*/
initErrorPopup(content) {
const typePopup = CONSTANT.TYPE_POPUP.error;
const title = 'Error Credential!';
const title = 'Error!';
const btnContent = 'Got it!';
this.initPopupContent(typePopup, title, content, btnContent);
@@ -41,7 +41,8 @@ export default class LoginView extends CommonLoginRegisterView {
/**
* Add event listener for form input
* @param {Function} handler The function need to be set event
* @param {Function} getUserByEmail The function need to be set event
* @param {Function} createTokenUser The function need to be set event
*/
addHandlerForm(getUserByEmail, createTokenUser) {
this.parentElement.addEventListener('submit', (e) => {
@@ -51,6 +52,11 @@ export default class LoginView extends CommonLoginRegisterView {
});
}
/**
* The action when submit form
* @param {Function} getUserByEmail The function need to be set event
* @param {Function} createTokenUser The function need to be set event
*/
async submitForm(getUserByEmail, createTokenUser) {
try {
// Load spinner
@@ -66,6 +72,7 @@ export default class LoginView extends CommonLoginRegisterView {
if (userInput.password === user.password) {
await createTokenUser(user);
window.location.replace('/');
return;
}
}