n8n
Version: 
n8n Workflow Automation Tool
59 lines • 2.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.clean = exports.getAllUsersAndCount = exports.getUser = void 0;
const typedi_1 = require("typedi");
const user_repository_1 = require("../../../../databases/repositories/user.repository");
const pick_1 = __importDefault(require("lodash/pick"));
const uuid_1 = require("uuid");
async function getUser(data) {
    return await typedi_1.Container.get(user_repository_1.UserRepository)
        .findOne({
        where: {
            ...((0, uuid_1.validate)(data.withIdentifier) && { id: data.withIdentifier }),
            ...(!(0, uuid_1.validate)(data.withIdentifier) && { email: data.withIdentifier }),
        },
    })
        .then((user) => {
        if (user && !(data === null || data === void 0 ? void 0 : data.includeRole))
            delete user.role;
        return user;
    });
}
exports.getUser = getUser;
async function getAllUsersAndCount(data) {
    const users = await typedi_1.Container.get(user_repository_1.UserRepository).find({
        where: {},
        skip: data.offset,
        take: data.limit,
    });
    if (!(data === null || data === void 0 ? void 0 : data.includeRole)) {
        users.forEach((user) => {
            delete user.role;
        });
    }
    const count = await typedi_1.Container.get(user_repository_1.UserRepository).count();
    return [users, count];
}
exports.getAllUsersAndCount = getAllUsersAndCount;
const userProperties = [
    'id',
    'email',
    'firstName',
    'lastName',
    'createdAt',
    'updatedAt',
    'isPending',
];
function pickUserSelectableProperties(user, options) {
    return (0, pick_1.default)(user, userProperties.concat((options === null || options === void 0 ? void 0 : options.includeRole) ? ['role'] : []));
}
function clean(users, options) {
    return Array.isArray(users)
        ? users.map((user) => pickUserSelectableProperties(user, options))
        : pickUserSelectableProperties(users, options);
}
exports.clean = clean;
//# sourceMappingURL=users.service.ee.js.map