Files
RayLab-Core/dist/modules/identity/infrastructure/mappers/prisma-user.mapper.js
T
2026-08-02 20:01:29 +07:00

69 lines
3.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrismaUserMapper = void 0;
const user_entity_1 = require("../../domain/entities/user.entity");
const role_entity_1 = require("../../domain/entities/role.entity");
const permission_entity_1 = require("../../domain/entities/permission.entity");
class PrismaUserMapper {
static toDomain(model) {
const roles = (model.roles || []).map((ur) => {
const r = ur.role;
const permissions = (r?.permissions || []).map((rp) => permission_entity_1.PermissionData.restore({
id: rp.permission.id,
name: rp.permission.name,
description: rp.permission.description,
createdAt: rp.permission.createdAt,
updatedAt: rp.permission.updatedAt,
}));
return role_entity_1.RoleData.restore({
id: r.id,
code: r.code,
name: r.name,
description: r.description,
permissions,
createdAt: r.createdAt,
updatedAt: r.updatedAt,
});
});
const permissions = (model.permissions || []).map((up) => permission_entity_1.PermissionData.restore({
id: up.permission.id,
name: up.permission.name,
description: up.permission.description,
createdAt: up.permission.createdAt,
updatedAt: up.permission.updatedAt,
}));
return user_entity_1.UserData.restore({
id: model.id,
authentikId: model.authentikUserId || model.authentikId || null,
username: model.username || model.name || model.username,
email: model.email,
password: model.password ?? null,
roles,
permissions,
isActive: model.isActive ?? true,
deletedAt: model.deletedAt || null,
lastSeenAt: model.lastSeenAt || null,
storageQuota: model.storageQuota !== undefined && model.storageQuota !== null ? Number(model.storageQuota) : undefined,
storageUsed: model.storageUsed !== undefined && model.storageUsed !== null ? Number(model.storageUsed) : undefined,
});
}
static toPersistence(userData) {
return {
id: userData.id,
authentikUserId: userData.authentikUserId || userData.authentikId,
authentikId: userData.authentikId,
username: userData.username,
email: userData.email,
password: userData.password ?? null,
isActive: userData.isActive,
deletedAt: userData.deletedAt,
lastSeenAt: userData.lastSeenAt,
lastSyncedAt: userData.lastSyncedAt,
syncStatus: userData.syncStatus,
storageQuota: userData.storageQuota,
storageUsed: userData.storageUsed,
};
}
}
exports.PrismaUserMapper = PrismaUserMapper;
//# sourceMappingURL=prisma-user.mapper.js.map