UNPKG

@kokkoro/web

Version:

Create web serve for kokkoro.

107 lines (106 loc) 3.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const app_1 = require("../app"); const db_1 = __importDefault(require("../db")); const user_model_1 = __importDefault(require("../model/user.model")); class UserService { constructor() { this.initUser(); } async initUser() { const has_user = await db_1.default.has('user'); if (!has_user) { await db_1.default.put('user', []); } } async registerUser(account, password) { const has_user = await this.hasUser(account); if (has_user) { throw new app_1.SourceError(409, '用户名已被注册'); } const user = await db_1.default.get('user'); user.push(new user_model_1.default(account, password)); await db_1.default.put('user', user); return { account, }; } async hasUser(account) { const user = await db_1.default.get('user'); const user_count = user.length; for (let i = 0; i < user_count; i++) { const element = user[i]; if (element.account === account) { return true; } } return false; } async getUserList() { const user = await db_1.default.get('user'); const user_count = user.length; const userList = []; for (let i = 0; i < user_count; i++) { const { id, account, createTime } = user[i]; const info = { id, account, createTime, }; userList.push(info); } return { list: userList, }; } async loginUser(account, password) { const user = await db_1.default.get('user'); const user_count = user.length; for (let i = 0; i < user_count; i++) { const element = user[i]; if (element.account === account && element.password === password) { return element.id; } } } async modifyUser(oldUser, newUser) { const user = await db_1.default.get('user'); const user_count = user.length; for (let i = 0; i < user_count; i++) { const { id } = user[i]; if (id !== oldUser.id) { continue; } user[i].account = newUser.account; user[i].password = newUser.password; await db_1.default.put('user', user); } return { account: newUser.account, }; } async removeUser(account, self) { if (account === self) { throw new app_1.SourceError(409, '不能删除自己'); } const has_user = this.hasUser(account); if (!has_user) { throw new app_1.SourceError(409, '用户名不存在'); } const user = await db_1.default.get('user'); const user_count = user.length; for (let i = 0; i < user_count; i++) { const element = user[i]; if (account !== element.account) { continue; } user.splice(i, 1); await db_1.default.put('user', user); } return { account, }; } } exports.default = new UserService();