@kokkoro/web
Version:
Create web serve for kokkoro.
107 lines (106 loc) • 3.54 kB
JavaScript
;
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();