use of org.olat.modules.vitero.model.ViteroBooking in project openolat by klemens.
the class ViteroManager method getBookingByDate.
public List<ViteroBooking> getBookingByDate(Date start, Date end) throws VmsNotAvailableException {
try {
Booking bookingWs = getBookingWebService();
GetBookingListByDateRequest dateRequest = new GetBookingListByDateRequest();
dateRequest.setStart(format(start));
dateRequest.setEnd(format(end));
dateRequest.setTimezone(viteroModule.getTimeZoneId());
dateRequest.setCustomerid(viteroModule.getCustomerId());
Bookinglist bookingList = bookingWs.getBookingListByDate(dateRequest);
List<Booking_Type> bookings = bookingList.getBooking();
return convert(bookings);
} catch (SOAPFaultException f) {
ErrorCode code = handleAxisFault(f);
switch(code) {
default:
logAxisError("Cannot get the list of bookings by date.", f);
}
return Collections.emptyList();
} catch (WebServiceException e) {
if (e.getCause() instanceof ConnectException) {
throw new VmsNotAvailableException();
}
return Collections.emptyList();
}
}
use of org.olat.modules.vitero.model.ViteroBooking in project openolat by klemens.
the class ViteroBookingsController method loadModel.
protected void loadModel() {
try {
List<ViteroBooking> bookings = viteroManager.getBookings(group, ores, subIdentifier);
List<ViteroBooking> myBookings = viteroManager.getBookingInFutures(getIdentity());
FilterBookings.filterMyFutureBookings(bookings, myBookings);
Collections.sort(bookings, new StartBookingComparator());
TableDataModel<ViteroBooking> tableData = new ViteroBookingDataModel(bookings, myBookings);
tableCtr.setTableDataModel(tableData);
} catch (VmsNotAvailableException e) {
TableDataModel<ViteroBooking> tableData = new ViteroBookingDataModel();
tableCtr.setTableDataModel(tableData);
showError(VmsNotAvailableException.I18N_KEY);
}
}
use of org.olat.modules.vitero.model.ViteroBooking in project openolat by klemens.
the class ViteroBookingsController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == tableCtr) {
if (event instanceof TableEvent) {
TableEvent e = (TableEvent) event;
int row = e.getRowId();
ViteroBooking booking = (ViteroBooking) tableCtr.getTableDataModel().getObject(row);
if ("start".equals(e.getActionId())) {
openVitero(ureq, booking);
} else if ("signin".equals(e.getActionId())) {
signInVitero(ureq, booking);
} else if ("signout".equals(e.getActionId())) {
signOutVitero(ureq, booking);
} else if ("opengroup".equals(e.getActionId())) {
openGroup(ureq, booking);
}
}
} else if (source == cmc) {
removeAsListenerAndDispose(cmc);
viteroGroupVC = null;
cmc = null;
}
super.event(ureq, source, event);
}
use of org.olat.modules.vitero.model.ViteroBooking in project openolat by klemens.
the class ViteroBookingsEditController method reloadModel.
protected void reloadModel() {
try {
bookingDisplays.clear();
List<ViteroBooking> bookings = viteroManager.getBookings(group, ores, subIdentifier);
int i = 0;
for (ViteroBooking booking : bookings) {
BookingDisplay display = new BookingDisplay(booking);
if (!readOnly) {
display.setDeleteButton(uifactory.addFormLink("delete_" + i++, "delete", "delete", flc, Link.BUTTON));
display.setEditButton(uifactory.addFormLink("edit_" + i++, "edit", "edit", flc, Link.BUTTON));
}
display.setUsersButton(uifactory.addFormLink("users_" + i++, "users", "users", flc, Link.BUTTON));
display.setGroupButton(uifactory.addFormLink("group_" + i++, "group.open", "group.open", flc, Link.BUTTON));
bookingDisplays.add(display);
}
flc.contextPut("bookingDisplays", bookingDisplays);
} catch (VmsNotAvailableException e) {
showError(VmsNotAvailableException.I18N_KEY);
}
}
use of org.olat.modules.vitero.model.ViteroBooking in project openolat by klemens.
the class ViteroBookingWebService method addMembers.
/**
* Update the list of members of the booking, it add and mutates the
* members and delete the missing members.
*
* @response.representation.200.qname {http://www.example.com}viteroGroupMemberVO
* @response.representation.200.mediaType application/xml, application/json
* @response.representation.200.doc This is the list of all bookings of a resource
* @response.representation.200.example {@link org.olat.modules.vitero.restapi.Examples#SAMPLE_ViteroGroupMemberVO}
* @param bookingId The id of the booking
* @param members The array of members
* @return Nothing
*/
@POST
@Path("{bookingId}/members")
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response addMembers(@PathParam("bookingId") int bookingId, ViteroGroupMemberVO[] members) {
try {
ViteroBooking booking = viteroManager.getBookingById(null, ores, subIdentifier, bookingId);
if (booking == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
ViteroGroupRoles roles = viteroManager.getGroupRoles(booking.getGroupId());
if (roles == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
List<ViteroErrorVO> errors = new ArrayList<>();
List<String> currentEmails = new ArrayList<>(roles.getEmailsOfParticipants());
for (ViteroGroupMemberVO member : members) {
GroupRole role = GroupRole.valueOf(member.getGroupRole());
Identity identity = securityManager.loadIdentityByKey(member.getIdentityKey());
String currentEmail = identity.getUser().getProperty(UserConstants.EMAIL, null);
GroupRole currentRole = roles.getEmailsToRole().get(currentEmail);
if (currentRole == null) {
ViteroStatus status = viteroManager.addToRoom(booking, identity, role);
if (!status.isOk()) {
errors.add(viteroErrorVO(status));
}
} else if (!currentRole.equals(role)) {
Integer vmsUserId = roles.getEmailsToVmsUserId().get(currentEmail);
ViteroStatus status = viteroManager.changeGroupRole(booking.getGroupId(), vmsUserId.intValue(), role.getVmsValue());
if (!status.isOk()) {
errors.add(viteroErrorVO(status));
}
}
currentEmails.remove(currentEmail);
}
for (String email : currentEmails) {
SearchIdentityParams params = new SearchIdentityParams();
params.setUserProperties(Collections.singletonMap(UserConstants.EMAIL, email));
List<Identity> identities = securityManager.getIdentitiesByPowerSearch(params, 0, 1);
for (Identity identity : identities) {
ViteroStatus status = viteroManager.removeFromRoom(booking, identity);
if (!status.isOk()) {
errors.add(viteroErrorVO(status));
}
}
}
return Response.ok().build();
} catch (VmsNotAvailableException e) {
log.error("", e);
return handleNotAvailableException();
}
}
Aggregations