1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| import User from "../models/User"; import { connection } from '../utils/db'; import PasswordSecurity from '../utils/password-security'; import { SnowflakeId } from "../utils/snowflakeid";
class UserService {
public async create(user: User): Promise<User> { return new Promise<User>((resolve, reject) => { try { const passwordSecurity = new PasswordSecurity(); const secret_key = passwordSecurity.createSalt(); user.id = SnowflakeId.newId(); user.secret_key = secret_key; user.password = passwordSecurity.createHash(user.password, secret_key); user.creation_time = new Date(); user.last_modifier_id = user.creator_id; user.last_modification_time = new Date(); connection.query('insert into user (id, account, password, secret_key, nick_name, avatar, email, phone_number, creator_id, creation_time, last_modifier_id, last_modification_time)' + 'values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [user.id, user.account, user.password, user.secret_key, user.nick_name, user.avatar, user.email, user.phone_number, user.creator_id, user.creation_time, user.last_modifier_id, user.last_modification_time], function (error: any, result: any) { if (error) { console.log('Error: ' + error.message); reject(error); } else { resolve(user); } }); } catch (e) { reject(e) } }) }
public async getByAccount(account: string): Promise<User> { return new Promise<User>((resolve, reject) => { try { connection.query('select * from user where account = ?', [account], function (error: any, result: any) { if (error) { console.log('Error: ' + error.message); reject(error); } else { resolve(result[0]); } }); } catch (e) { reject(e) } }) }
public async getById(id: number): Promise<User> { return new Promise<User>((resolve, reject) => { try { connection.query('select * from user where id = ?', [id], function (error: any, result: any) { if (error) { console.log('Error: ' + error.message); reject(error); } else { resolve(result[0]); } }) } catch (e) { reject(e) } }); }
public async getByEmail(email: string): Promise<User> { return new Promise<User>((resolve, reject) => { try { connection.query('select * from user where email = ?', [email], function (error: any, result: any) { if (error) { console.log('Error: ' + error.message); reject(error); } else { resolve(result[0]); } }) } catch (e) { reject(e) } }) }
public async getByPhoneNumber(phone_number: string): Promise<User> { return new Promise<User>((resolve, reject) => { try { connection.query('select * from user where phone_number = ?', [phone_number], function (error: any, result: any) { if (error) { console.log('Error: ' + error.message); reject(error); } else { resolve(result[0]); } }) } catch (e) { reject(e) } }) }
public async update(user: User): Promise<User> { return new Promise((resolve, reject) => { try { connection.query('update user set account = ?, password = ?, secret_key = ?, name = ?, avatar = ?, email = ?, phone_number = ?, creator_id = ?, creation_time = ?, last_modifier_id = ?, last_modification_time = ? where id = ?', [user.account, user.password, user.secret_key, user.nick_name, user.avatar, user.email, user.phone_number, user.last_modifier_id, user.last_modification_time, user.id], function (error, result) { if (error) { console.log('Error: ' + error.message); reject(error) } else { resolve(user); } }); } catch (e) { reject(e); } }); }
public async delete(id: number): Promise<void> { return new Promise<void>((resolve, reject) => { try { connection.query('delete from user where id = ?', [id], function (error, result) { if (error) { console.log('Error: ' + error.message); reject(error) } else { resolve(); } }); } catch (e) { reject(e); } }) }
}
export default new UserService();
|