Skip to content

Commit

Permalink
EVDOC01-156:Crear reunions amb rol organitzador per a tots els admini…
Browse files Browse the repository at this point in the history
…stradors del site i actualitzar els professors (asicudl#36)
  • Loading branch information
Aniii10 authored and mateullas committed Oct 3, 2024
1 parent d470044 commit c268e5b
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -493,12 +493,32 @@ public Meeting updateMeeting(@RequestBody MeetingData data, @PathVariable String
meeting.setDescription(data.getDescription());
meeting.setStartDate(Instant.parse(data.getStartDate()));
meeting.setEndDate(Instant.parse(data.getEndDate()));


List<String> coorganizerEmails = new ArrayList<>();
if (MS_TEAMS.equals(data.getProvider())) {
String organizerEmail = meetingService.getMeetingProperty(meeting, ORGANIZER_USER);
String onlineMeetingId = meetingService.getMeetingProperty(meeting, ONLINE_MEETING_ID);

// Updating coorganizers
if (data.isCoorganizersEnabled()) {
List<Member> coorganizers = sakaiProxy.getSite(data.getSiteId()).getMembers()
.stream()
.filter(u -> {
boolean canUpdate = sakaiProxy.canUpdateSite("/site/" + data.getSiteId(), u.getUserId());
log.debug("User: " + u.getUserId() + " canUpdate: " + canUpdate);
return canUpdate;
})
.collect(Collectors.toList());

coorganizers.forEach(c -> log.debug("Filtered Coorganizer: " + c.getUserId()));

coorganizerEmails = coorganizers.stream()
.map(member -> sakaiProxy.getUser(member.getUserId()).getEmail())
.filter(StringUtils::isNotEmpty)
.collect(Collectors.toList());
}
if(StringUtils.isNotBlank(onlineMeetingId)) {
microsoftCommonService.updateOnlineMeeting(organizerEmail, onlineMeetingId, meeting.getTitle(), meeting.getStartDate(), meeting.getEndDate());
microsoftCommonService.updateOnlineMeeting(organizerEmail, onlineMeetingId, meeting.getTitle(), meeting.getStartDate(), meeting.getEndDate(), coorganizerEmails);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ public static enum PermissionRoles { READ, WRITE }

// ---------------------------------------- ONLINE MEETINGS --------------------------------------------------
TeamsMeetingData createOnlineMeeting(String userEmail, String subject, Instant startDate, Instant endDate, List<String> coorganizerEmails) throws MicrosoftCredentialsException;
void updateOnlineMeeting(String userEmail, String meetingId, String subject, Instant startDate, Instant endDate) throws MicrosoftCredentialsException;
void updateOnlineMeeting(String userEmail, String meetingId, String subject, Instant startDate, Instant endDate, List<String> coorganizerEmails) throws MicrosoftCredentialsException;
List<MeetingRecordingData> getOnlineMeetingRecordings(String onlineMeetingId, List<String> teamIdsList, boolean force) throws MicrosoftCredentialsException;

// ---------------------------------------- ONE-DRIVE (APPLICATION) --------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@

import com.microsoft.graph.tasks.LargeFileUploadTask;
import com.microsoft.graph.tasks.LargeFileUploadResult;
import com.microsoft.graph.models.MeetingChatMode;
import com.microsoft.graph.models.AadUserConversationMember;
import com.microsoft.graph.models.CallRecordingEventMessageDetail;
import com.microsoft.graph.models.CallRecordingStatus;
Expand Down Expand Up @@ -1995,7 +1996,8 @@ public TeamsMeetingData createOnlineMeeting(String userEmail, String subject, In
onlineMeeting.participants = participants;
onlineMeeting.subject = subject;
onlineMeeting.lobbyBypassSettings = lobbySettings;
onlineMeeting.allowedPresenters = OnlineMeetingPresenters.ROLE_IS_PRESENTER;
onlineMeeting.allowedPresenters = OnlineMeetingPresenters.ORGANIZER;
onlineMeeting.allowMeetingChat = MeetingChatMode.ENABLED;

OnlineMeeting meeting = getGraphClient().users(organizerUser.getId()).onlineMeetings()
.buildRequest()
Expand All @@ -2009,7 +2011,7 @@ public TeamsMeetingData createOnlineMeeting(String userEmail, String subject, In
}

@Override
public void updateOnlineMeeting(String userEmail, String meetingId, String subject, Instant startDate, Instant endDate) throws MicrosoftCredentialsException {
public void updateOnlineMeeting(String userEmail, String meetingId, String subject, Instant startDate, Instant endDate, List<String> coorganizerEmails) throws MicrosoftCredentialsException {
// Get organizer user
MicrosoftUser organizerUser = getUserByEmail(userEmail);

Expand All @@ -2020,6 +2022,30 @@ public void updateOnlineMeeting(String userEmail, String meetingId, String subje
onlineMeeting.endDateTime = OffsetDateTime.ofInstant(endDate, ZoneId.systemDefault());
onlineMeeting.subject = subject;

MeetingParticipants participants = new MeetingParticipants();

// Coorganizers
List<MeetingParticipantInfo> attendees = new ArrayList<>();
if (coorganizerEmails != null) {
for (String coorganizerEmail : coorganizerEmails) {
if (!coorganizerEmail.equals(organizerUser.getEmail())) {
MicrosoftUser coorganizerUser = getUserByEmail(coorganizerEmail);
if (coorganizerUser != null) {
MeetingParticipantInfo coorganizer = new MeetingParticipantInfo();
IdentitySet coorganizerIdentity = new IdentitySet();
Identity coorganizerIden = new Identity();
coorganizerIden.id = coorganizerUser.getId();
coorganizerIden.displayName = coorganizerUser.getName();
coorganizerIdentity.user = coorganizerIden;
coorganizer.identity = coorganizerIdentity;
coorganizer.role = OnlineMeetingRole.COORGANIZER;
attendees.add(coorganizer);
}
}
}
participants.attendees = attendees;
}
onlineMeeting.participants = participants;
getGraphClient().users(organizerUser.getId()).onlineMeetings(meetingId)
.buildRequest()
.patch(onlineMeeting);
Expand Down

0 comments on commit c268e5b

Please sign in to comment.