use of org.olat.modules.vitero.model.ErrorCode in project openolat by klemens.
the class ViteroManager method addToRoom.
public ViteroStatus addToRoom(ViteroBooking booking, Identity identity, GroupRole role) throws VmsNotAvailableException {
try {
GetUserInfo userInfo = getVmsUserId(identity, true);
int userId = userInfo.getUserId();
if (userId < 0) {
return new ViteroStatus(ErrorCode.userDoesntExist);
}
if (!userInfo.isCreated()) {
// update user information
try {
updateVmsUser(identity, userId);
// storePortrait(identity, userId);
} catch (Exception e) {
log.error("Cannot update user on vitero system:" + identity.getName(), e);
}
}
Group groupWs = getGroupWebService();
Groupiduserid groupuserId = new Groupiduserid();
groupuserId.setGroupid(booking.getGroupId());
groupuserId.setUserid(userId);
groupWs.addUserToGroup(groupuserId);
if (role != null) {
groupWs = getGroupWebService();
ChangeGroupRoleRequest roleRequest = new ChangeGroupRoleRequest();
roleRequest.setGroupid(booking.getGroupId());
roleRequest.setUserid(userId);
roleRequest.setRole(role.getVmsValue());
groupWs.changeGroupRole(roleRequest);
}
return new ViteroStatus();
} catch (SOAPFaultException f) {
ErrorCode code = handleAxisFault(f);
switch(code) {
case userDoesntExist:
log.error("The user doesn ́t exist!", f);
break;
case userNotAttachedToCustomer:
log.error("The user is not attached to the customer (to which this group belongs)", f);
break;
case groupDoesntExist:
log.error("The group doesn ́t exist", f);
break;
case invalidAttribut:
log.error("An id <= 0", f);
break;
default:
logAxisError("Cannot add an user to a group", f);
}
return new ViteroStatus(code);
} catch (WebServiceException e) {
if (e.getCause() instanceof ConnectException) {
throw new VmsNotAvailableException();
}
log.error("Cannot add an user to a group", e);
return new ViteroStatus(ErrorCode.unkown);
}
}
use of org.olat.modules.vitero.model.ErrorCode in project openolat by klemens.
the class ViteroManager method createPersonalBookingSessionCode.
/**
* Create a session code with a one hour expiration date
* @param identity
* @param booking
* @return
*/
protected String createPersonalBookingSessionCode(Identity identity, ViteroBooking booking) throws VmsNotAvailableException {
try {
GetUserInfo userInfo = getVmsUserId(identity, true);
int userId = userInfo.getUserId();
// update user information
if (!userInfo.isCreated()) {
try {
updateVmsUser(identity, userId);
storePortrait(identity, userId);
} catch (Exception e) {
log.error("Cannot update user on vitero system:" + identity.getName(), e);
}
}
CreatePersonalBookingSessionCodeRequest.Sessioncode code = new CreatePersonalBookingSessionCodeRequest.Sessioncode();
code.setBookingid(booking.getBookingId());
code.setUserid(userId);
code.setTimezone(viteroModule.getTimeZoneId());
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.HOUR, 1);
code.setExpirationdate(format(cal.getTime()));
CreatePersonalBookingSessionCodeRequest codeRequest = new CreatePersonalBookingSessionCodeRequest();
codeRequest.setSessioncode(code);
Codetype myCode = getSessionCodeWebService().createPersonalBookingSessionCode(codeRequest);
return myCode.getCode();
} catch (SOAPFaultException f) {
ErrorCode code = handleAxisFault(f);
switch(code) {
case userDoesntExist:
log.error("User does not exist.", f);
break;
case userNotAssignedToGroup:
log.error("User not assigned to group.", f);
break;
case invalidAttribut:
log.error("Invalid attribute.", f);
break;
case invalidTimezone:
log.error("Invalid time zone.", f);
break;
case bookingDoesntExist:
case bookingDoesntExistPrime:
log.error("Booking does not exist.", f);
break;
default:
logAxisError("Cannot create session code.", f);
}
return null;
} catch (WebServiceException e) {
if (e.getCause() instanceof ConnectException) {
throw new VmsNotAvailableException();
}
log.error("Cannot create session code.", e);
return null;
}
}
use of org.olat.modules.vitero.model.ErrorCode in project openolat by klemens.
the class ViteroManager method updateVmsBooking.
public ViteroStatus updateVmsBooking(ViteroBooking vBooking) throws VmsNotAvailableException {
try {
UpdateBookingRequest updateRequest = new UpdateBookingRequest();
updateRequest.setBookingid(vBooking.getBookingId());
if (StringHelper.containsNonWhitespace(vBooking.getEventName())) {
updateRequest.setEventname(vBooking.getEventName());
}
updateRequest.setEnd(format(vBooking.getEnd()));
updateRequest.setEndbuffer(vBooking.getEndBuffer());
updateRequest.setStart(format(vBooking.getStart()));
updateRequest.setStartbuffer(vBooking.getStartBuffer());
updateRequest.setTimezone(viteroModule.getTimeZoneId());
getBookingWebService().updateBooking(updateRequest);
return new ViteroStatus();
} catch (SOAPFaultException f) {
ErrorCode code = handleAxisFault(f);
switch(code) {
case unsufficientRights:
case bookingCollision:
case bookingInPast:
case noRoomsAvailable:
return new ViteroStatus(code);
case bookingDoesntExist:
case bookingDoesntExistPrime:
{
deleteGroup(vBooking);
deleteProperty(vBooking);
// ok, vms deleted, group deleted...
return new ViteroStatus(code);
}
default:
{
logAxisError("Cannot update a booking.", f);
}
}
return new ViteroStatus(ErrorCode.unkown);
} catch (WebServiceException e) {
if (e.getCause() instanceof ConnectException) {
throw new VmsNotAvailableException();
}
log.error("Cannot update a booking.", e);
return new ViteroStatus(ErrorCode.unkown);
}
}
Aggregations