Files
myDrive/backend/controllers/user.js
T

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;