UNPKG

obrigado-react-admin-backend-utils

Version:
77 lines 3.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const type_graphql_1 = require("type-graphql"); const GQLAdministrator_1 = require("../types/GQLAdministrator"); const Administrator_1 = require("../models/Administrator"); const apollo_server_errors_1 = require("apollo-server-errors"); const __1 = require(".."); const bcrypt = require("bcrypt"); const GQLLogoutResult_1 = require("../types/GQLLogoutResult"); const moment = require("moment"); const type_graphql_2 = require("type-graphql"); let AdminAuthResolver = class AdminAuthResolver { async adminLogin(username, password, ctx) { const user = await Administrator_1.Administrator.findOne({ where: { username } }); if (user == null) { throw new apollo_server_errors_1.ApolloError('Wrong email or password', 'WRONG_CREDENTIALS'); } if (!bcrypt.compareSync(password, user.password)) { throw new apollo_server_errors_1.ApolloError('Wrong email or password', 'WRONG_CREDENTIALS'); } if (user.isBlocked) { throw new apollo_server_errors_1.ApolloError('Your account has been blocked', 'BLOCKED_ADMIN'); } let secret = process.env['APP_SECRET']; if (!secret) { throw new apollo_server_errors_1.ApolloError('Please set env APP_SECRET'); } let expire = parseInt(process.env.ADMINISTRATOR_SESSION_EXPIRE || '365'); user.token = __1.getJWTToken({ id: user.id, type: 'admin' }, expire); ctx.session.res.cookie('admin_token', user.token, { httpOnly: true, expires: moment() .add(expire, 'day') .toDate(), }); return user; } async adminCheck(context) { if (!context.administrator) throw new apollo_server_errors_1.ApolloError('Admin not authorized'); return Administrator_1.Administrator.findOneOrFail({ id: context.administrator.id }); } async adminLogOut(ctx) { ctx.session.res.clearCookie('admin_token'); return { message: 'Logout success', code: 'SUCCESS', }; } }; tslib_1.__decorate([ type_graphql_1.Mutation(type => GQLAdministrator_1.GQLAdministrator), tslib_1.__param(0, type_graphql_1.Arg('username')), tslib_1.__param(1, type_graphql_1.Arg('password')), tslib_1.__param(2, type_graphql_1.Ctx()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [String, String, Object]), tslib_1.__metadata("design:returntype", Promise) ], AdminAuthResolver.prototype, "adminLogin", null); tslib_1.__decorate([ type_graphql_1.Query(type => GQLAdministrator_1.GQLAdministrator), tslib_1.__param(0, type_graphql_1.Ctx()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", Promise) ], AdminAuthResolver.prototype, "adminCheck", null); tslib_1.__decorate([ type_graphql_1.Mutation(type => GQLLogoutResult_1.GQLLogoutResult), tslib_1.__param(0, type_graphql_1.Ctx()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", Promise) ], AdminAuthResolver.prototype, "adminLogOut", null); AdminAuthResolver = tslib_1.__decorate([ type_graphql_2.Resolver() ], AdminAuthResolver); exports.AdminAuthResolver = AdminAuthResolver; //# sourceMappingURL=AdminAuthResolver.js.map