obrigado-react-admin-backend-utils
Version:
Helper utilities for react-admin graphql backend.
77 lines • 3.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const BaseAdminResourceResolver_1 = require("../BaseAdminResourceResolver");
const type_graphql_1 = require("type-graphql");
const GQLAdministrator_1 = require("../types/GQLAdministrator");
const GQLAdministratorInput_1 = require("../types/GQLAdministratorInput");
const Administrator_1 = require("../models/Administrator");
const apollo_server_errors_1 = require("apollo-server-errors");
const EntityUpdateHelper_1 = require("../EntityUpdateHelper");
const bcrypt = require("bcrypt");
const RoleConfig_1 = require("../roles/RoleConfig");
const __1 = require("..");
const AdminDataBaseResolver = BaseAdminResourceResolver_1.createAdminResolver({
entity: Administrator_1.Administrator,
return: GQLAdministrator_1.GQLAdministrator,
create: GQLAdministratorInput_1.GQLAdministratorInput,
update: GQLAdministratorInput_1.GQLAdministratorInput
});
let AdminDataResolver = class AdminDataResolver extends AdminDataBaseResolver {
async update(id, data, context) {
// @ts-ignore
let entity = await Administrator_1.Administrator.findOne({ where: { id } });
if (!entity)
throw new apollo_server_errors_1.ApolloError('Entity not found for id ' + id, 'NOT_FOUND');
await EntityUpdateHelper_1.EntityUpdateHelper.update(entity, data, { ignore: ['password'] });
if (data.password)
entity.password = bcrypt.hashSync(data.password, 10);
await entity.save();
return entity;
}
async create(data, context) {
// @ts-ignore
let entity = new Administrator_1.Administrator();
await EntityUpdateHelper_1.EntityUpdateHelper.update(entity, data, { ignore: ['password'] });
if (data.password)
entity.password = bcrypt.hashSync(data.password, 10);
await entity.save();
return entity;
}
permissions(admin) {
return RoleConfig_1.RoleConfig.getPermissions(admin.role);
}
async getRoles() {
return RoleConfig_1.RoleConfig.getRolesList();
}
async role(admin) {
var _a;
return (_a = RoleConfig_1.RoleConfig.getRole(admin.role)) === null || _a === void 0 ? void 0 : _a.id;
}
};
tslib_1.__decorate([
type_graphql_1.FieldResolver(type => [String]),
tslib_1.__param(0, type_graphql_1.Root()),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Administrator_1.Administrator]),
tslib_1.__metadata("design:returntype", void 0)
], AdminDataResolver.prototype, "permissions", null);
tslib_1.__decorate([
type_graphql_1.Authorized('admin'),
type_graphql_1.Query((type) => [__1.GQLAdminRole]),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", []),
tslib_1.__metadata("design:returntype", Promise)
], AdminDataResolver.prototype, "getRoles", null);
tslib_1.__decorate([
type_graphql_1.FieldResolver((type) => String, { nullable: true }),
tslib_1.__param(0, type_graphql_1.Root()),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Administrator_1.Administrator]),
tslib_1.__metadata("design:returntype", Promise)
], AdminDataResolver.prototype, "role", null);
AdminDataResolver = tslib_1.__decorate([
type_graphql_1.Resolver(type => GQLAdministrator_1.GQLAdministrator)
], AdminDataResolver);
exports.AdminDataResolver = AdminDataResolver;
//# sourceMappingURL=AdminDataResolver.js.map