148 lines
2.9 KiB
JavaScript
148 lines
2.9 KiB
JavaScript
const env = require("../enviroment/env");
|
|
const UserService = require("../services/UserService")
|
|
const UserProvider = new UserService();
|
|
|
|
class UserController {
|
|
|
|
constructor() {
|
|
|
|
}
|
|
|
|
async getUser(req, res) {
|
|
|
|
try {
|
|
|
|
const user = req.user;
|
|
user.tokens = undefined;
|
|
user.tempTokens = undefined;
|
|
user.password = undefined;
|
|
user.privateKey = undefined;
|
|
user.publicKey = undefined;
|
|
|
|
res.send(user)
|
|
|
|
} catch (e) {
|
|
|
|
res.status(500).send(e);
|
|
}
|
|
}
|
|
|
|
async login(req, res) {
|
|
|
|
try {
|
|
|
|
const body = req.body;
|
|
|
|
const {user, token} = await UserProvider.login(body);
|
|
|
|
user.tokens = undefined;
|
|
user.tempTokens = undefined;
|
|
user.password = undefined;
|
|
user.privateKey = undefined;
|
|
user.publicKey = undefined;
|
|
|
|
res.status(200).send({user, token});
|
|
|
|
} catch (e) {
|
|
|
|
const code = e.code || 500;
|
|
|
|
console.log(e);
|
|
res.status(code).send(e);
|
|
}
|
|
}
|
|
|
|
async logout(req, res) {
|
|
|
|
if (!req.user) {
|
|
|
|
return;
|
|
}
|
|
|
|
try {
|
|
|
|
const user = req.user;
|
|
const token = req.encryptedToken;
|
|
|
|
await UserProvider.logout(user, token);
|
|
|
|
res.send();
|
|
|
|
} catch (e) {
|
|
|
|
res.status(500).send(e);
|
|
}
|
|
}
|
|
|
|
async logoutAll(req, res) {
|
|
|
|
try {
|
|
|
|
const user = req.user;
|
|
|
|
await UserProvider.logoutAll(user);
|
|
|
|
res.send();
|
|
|
|
} catch (e) {
|
|
|
|
res.status(500).send(e);
|
|
}
|
|
}
|
|
|
|
async createUser(req, res) {
|
|
|
|
if (env.createAcctBlocked) {
|
|
|
|
return await res.status(401).send()
|
|
}
|
|
|
|
try {
|
|
|
|
const {user, token} = await UserProvider.create(req.body);
|
|
|
|
user.tokens = undefined;
|
|
user.tempTokens = undefined;
|
|
user.password = undefined;
|
|
user.privateKey = undefined;
|
|
user.publicKey = undefined;
|
|
|
|
res.status(201).send({user, token})
|
|
|
|
} catch (e) {
|
|
|
|
const code = e.code || 500;
|
|
|
|
console.log(e);
|
|
res.status(code).send(e);
|
|
}
|
|
}
|
|
|
|
async changePassword(req, res) {
|
|
|
|
if (!req.user) {
|
|
|
|
return;
|
|
}
|
|
|
|
try {
|
|
|
|
const user = req.user;
|
|
const oldPassword = req.body.oldPassword;
|
|
const newPassword = req.body.newPassword;
|
|
|
|
const newToken = await UserProvider.changePassword(user, oldPassword, newPassword);
|
|
|
|
res.send(newToken);
|
|
|
|
} catch (e) {
|
|
|
|
const code = e.code || 500;
|
|
|
|
console.log(e);
|
|
res.status(code).send(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = UserController; |