122 lines
4.2 KiB
JavaScript
122 lines
4.2 KiB
JavaScript
"use strict";
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
const env = require("../enviroment/env");
|
|
const UserService = require("../services/UserService");
|
|
const UserProvider = new UserService();
|
|
class UserController {
|
|
constructor() {
|
|
}
|
|
getUser(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
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);
|
|
}
|
|
});
|
|
}
|
|
login(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
try {
|
|
const body = req.body;
|
|
const { user, token } = yield 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);
|
|
}
|
|
});
|
|
}
|
|
logout(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
if (!req.user) {
|
|
return;
|
|
}
|
|
try {
|
|
const user = req.user;
|
|
const token = req.encryptedToken;
|
|
yield UserProvider.logout(user, token);
|
|
res.send();
|
|
}
|
|
catch (e) {
|
|
res.status(500).send(e);
|
|
}
|
|
});
|
|
}
|
|
logoutAll(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
try {
|
|
const user = req.user;
|
|
yield UserProvider.logoutAll(user);
|
|
res.send();
|
|
}
|
|
catch (e) {
|
|
res.status(500).send(e);
|
|
}
|
|
});
|
|
}
|
|
createUser(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
if (env.createAcctBlocked) {
|
|
return yield res.status(401).send();
|
|
}
|
|
try {
|
|
const { user, token } = yield 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);
|
|
}
|
|
});
|
|
}
|
|
changePassword(req, res) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
if (!req.user) {
|
|
return;
|
|
}
|
|
try {
|
|
const user = req.user;
|
|
const oldPassword = req.body.oldPassword;
|
|
const newPassword = req.body.newPassword;
|
|
const newToken = yield 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;
|