const sqlite = require('../db/sqlite.config'); const User = require("../models/user.model"); /** * * @param {*} id * @returns */ exports.selectById = async (id) => { let db; try { db = await sqlite.connectSqlite(); db.all('SELECT * FROM USERS WHERE `id` = ?', [id], async function (err, rows) { if (err) { console.error(err); } return await getUser(rows); }); const rows = await new Promise((resolve, reject) => { db.all('SELECT * FROM USERS WHERE `id` = ?', [id], (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }); }); return await getUser(rows); } catch (err) { throw err; } finally { try { await db.close(); } catch (error) { throw err; } } }; /** * * @param {*} name * @returns */ exports.selectByName = async (name) => { let db; try { db = await sqlite.connectSqlite(); const rows = await new Promise((resolve, reject) => { db.all('SELECT * FROM USERS', async function (err, rows) { if (err) { reject(err); } resolve(rows); }); }) return await getUser(rows); } catch (err) { throw err; } finally { try { await db.close(); } catch (error) { console.error(error); } } } exports.selectAllUser = async () => { let db; try { db = await sqlite.connectSqlite(); const rows = await new Promise((reject, resolve) => { db.all('SELECT * FROM USERS', async function (err, rows) { if (err) { reject(err); } resolve(rows) }); }) return await getUser(rows); } catch (err) { throw err; } finally { try { await db.close(); } catch (error) { console.error(error); } } } /** * * @param {*} User */ exports.insertUser = async (User) => { let db; try { db = await sqlite.connectSqlite(); const user = await new Promise((resolve, reject) => { db.run('INSERT \ INTO USERS(USER_ACCOUNT, USER_NAME, PASSWORD, EMAIL, MOBILE) \ VALUES(?, ?, ?, ?, ?)', [User.user_account, User.user_name, User.password, User.email, User.mobile], async function (err) { if (err) { reject(err); } console.log(this + '-----'); resolve(this); }); }); } catch (error) { throw error } finally { try { await db.close(); } catch (error) { console.error(error); } } } /** * @param password * @param userId */ exports.updatePassword = async (password, userId) => { let db; try { db = await sqlite.connectSqlite(); const thisUpdate = await new Promise((resolve, reject) => { db.run( "UPDATE USERS SET PASSWORD = ? WHERE ID = ?;", [password, userId], async function (err) { if (err) { reject(err); } resolve(this); } ) }) } catch (error) { throw error; } finally { try { await db.close(); } catch (error) { throw error; } } } /** * * @param rows */ getUser = async (rows) => { let users = new Array(); rows.map((value, index) => { users[index] = new User( value.id, value.user_account, value.user_name, value.password, value.email, value.mobile, value.status, value.create_time, value.update_time); }); return users; }