From c6e9f3eef7426f839c54a98d61dee4e985841eec Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Tue, 7 Jan 2020 18:32:06 +0100 Subject: [PATCH] OO-4448: add classification to the Event VO --- .../calendar/restapi/CalendarWSHelper.java | 8 +++++ .../commons/calendar/restapi/EventVO.java | 11 ++++++ .../org/olat/restapi/CourseCalendarTest.java | 36 +++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/src/main/java/org/olat/commons/calendar/restapi/CalendarWSHelper.java b/src/main/java/org/olat/commons/calendar/restapi/CalendarWSHelper.java index d38923e85e9..fd4c8130476 100644 --- a/src/main/java/org/olat/commons/calendar/restapi/CalendarWSHelper.java +++ b/src/main/java/org/olat/commons/calendar/restapi/CalendarWSHelper.java @@ -54,6 +54,14 @@ public class CalendarWSHelper { kalEvent.setLiveStreamUrl(event.getLiveStreamUrl()); kalEvent.setExternalId(event.getExternalId()); kalEvent.setExternalSource(event.getExternalSource()); + if(event.getClassification() != null) { + int classification = event.getClassification().intValue(); + if(classification == KalendarEvent.CLASS_PRIVATE + || classification == KalendarEvent.CLASS_PUBLIC + || classification == KalendarEvent.CLASS_X_FREEBUSY) { + kalEvent.setClassification(classification); + } + } } static boolean hasReadAccess(KalendarRenderWrapper wrapper) { diff --git a/src/main/java/org/olat/commons/calendar/restapi/EventVO.java b/src/main/java/org/olat/commons/calendar/restapi/EventVO.java index dcff953f347..134fa20b313 100644 --- a/src/main/java/org/olat/commons/calendar/restapi/EventVO.java +++ b/src/main/java/org/olat/commons/calendar/restapi/EventVO.java @@ -45,6 +45,8 @@ public class EventVO { private Date end; private boolean allDayEvent; + private Integer classification; + private String liveStreamUrl; @Schema(required = true, description = "Action to be performed on managedFlags", allowableValues = { @@ -79,6 +81,7 @@ public class EventVO { managedFlags = CalendarManagedFlag.toString(event.getManagedFlags()); externalId = event.getExternalId(); externalSource = event.getExternalSource(); + classification = event.getClassification(); } public String getId() { @@ -157,6 +160,14 @@ public class EventVO { this.calendarId = calendarId; } + public Integer getClassification() { + return classification; + } + + public void setClassification(Integer classification) { + this.classification = classification; + } + public String getManagedFlags() { return managedFlags; } diff --git a/src/test/java/org/olat/restapi/CourseCalendarTest.java b/src/test/java/org/olat/restapi/CourseCalendarTest.java index b354c88b5df..aee46c4637b 100644 --- a/src/test/java/org/olat/restapi/CourseCalendarTest.java +++ b/src/test/java/org/olat/restapi/CourseCalendarTest.java @@ -186,6 +186,42 @@ public class CourseCalendarTest extends OlatRestTestCase { conn.shutdown(); } + @Test + public void putVisibleCalendarEvent() throws IOException, URISyntaxException { + RestConnection conn = new RestConnection(); + assertTrue(conn.login(auth1.getName(), "A6B7C8")); + + //create an event + EventVO event = new EventVO(); + Calendar cal = Calendar.getInstance(); + event.setBegin(cal.getTime()); + cal.add(Calendar.HOUR_OF_DAY, 1); + event.setEnd(cal.getTime()); + String subject = UUID.randomUUID().toString(); + event.setSubject(subject); + event.setClassification(KalendarEvent.CLASS_PUBLIC); + + URI eventUri = UriBuilder.fromUri(getContextURI()).path("repo").path("courses") + .path(course1.getResourceableId().toString()).path("calendar").path("event").build(); + HttpPut putEventMethod = conn.createPut(eventUri, MediaType.APPLICATION_JSON, true); + conn.addJsonEntity(putEventMethod, event); + HttpResponse putEventResponse = conn.execute(putEventMethod); + assertEquals(200, putEventResponse.getStatusLine().getStatusCode()); + EntityUtils.consume(putEventResponse.getEntity()); + + //check if the event is saved + KalendarRenderWrapper calendarWrapper = calendarManager.getCourseCalendar(course1); + Collection<KalendarEvent> savedEvents = calendarWrapper.getKalendar().getEvents(); + + KalendarEvent savedEvent = savedEvents.stream() + .filter(e -> subject.equals(e.getSubject())) + .findFirst().get(); + + Assert.assertEquals(KalendarEvent.CLASS_PUBLIC, savedEvent.getClassification()); + + conn.shutdown(); + } + @Test public void putCalendarEvents() throws IOException, URISyntaxException { RestConnection conn = new RestConnection(); -- GitLab