Sistemato profilo
This commit is contained in:
@@ -14,23 +14,24 @@ class GroupsService {
|
||||
return await this.groupsRepository.findById(groupId, true);
|
||||
}
|
||||
|
||||
async createGroup(groupData) {
|
||||
async createGroup(groupData, creatorId) {
|
||||
const { name, members } = groupData;
|
||||
|
||||
if (!name || name.trim() === '') {
|
||||
throw new ValidationError('Group name is required');
|
||||
}
|
||||
|
||||
if (!members || !Array.isArray(members) || members.length === 0) {
|
||||
throw new ValidationError('At least one member is required');
|
||||
const memberList = Array.isArray(members) ? [...members] : [];
|
||||
if (!memberList.includes(creatorId)) {
|
||||
memberList.push(creatorId);
|
||||
}
|
||||
|
||||
for (const userId of members) {
|
||||
for (const userId of memberList) {
|
||||
await this.usersRepository.findById(userId);
|
||||
}
|
||||
|
||||
const group = await this.groupsRepository.create({ name });
|
||||
return await this.groupsRepository.addMembers(group.id, members);
|
||||
return await this.groupsRepository.addMembers(group.id, memberList);
|
||||
}
|
||||
|
||||
async updateGroup(groupId, updateData) {
|
||||
|
||||
@@ -13,6 +13,10 @@ class UsersService {
|
||||
return await this.usersRepository.findById(id);
|
||||
}
|
||||
|
||||
async searchUsers(query, excludeUserId) {
|
||||
return await this.usersRepository.search(query, excludeUserId);
|
||||
}
|
||||
|
||||
async updateUserProfile(id, updateData) {
|
||||
const { name, email, avatarUrl } = updateData;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user