34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.ListOrgMembersQuery = void 0;
|
|
const Result_1 = require("../../../../shared/domain/Result");
|
|
class ListOrgMembersQuery {
|
|
constructor(orgRepository, userRepository) {
|
|
this.orgRepository = orgRepository;
|
|
this.userRepository = userRepository;
|
|
}
|
|
async execute(request) {
|
|
const org = await this.orgRepository.findById(request.orgId);
|
|
if (!org) {
|
|
return (0, Result_1.Err)('Organization not found');
|
|
}
|
|
const members = await this.orgRepository.listMembers(request.orgId);
|
|
const dtos = [];
|
|
for (const member of members) {
|
|
const user = await this.userRepository.findById(member.userId);
|
|
if (user) {
|
|
dtos.push({
|
|
id: member.id,
|
|
userId: member.userId,
|
|
email: user.email.value,
|
|
name: user.name,
|
|
role: member.role,
|
|
joinedAt: member.joinedAt,
|
|
});
|
|
}
|
|
}
|
|
return (0, Result_1.Ok)({ members: dtos, total: dtos.length });
|
|
}
|
|
}
|
|
exports.ListOrgMembersQuery = ListOrgMembersQuery;
|