Search in sources :

Example 6 with CalendarServiceException

use of fi.otavanopisto.muikku.calendar.CalendarServiceException in project muikku by otavanopisto.

the class GoogleCalendarClient method createCalendar.

public fi.otavanopisto.muikku.calendar.Calendar createCalendar(String summary, String description) throws CalendarServiceException {
    com.google.api.services.calendar.model.Calendar calendar = new com.google.api.services.calendar.model.Calendar();
    calendar.setSummary(summary);
    calendar.setDescription(description);
    try {
        calendar = getClient().calendars().insert(calendar).execute();
    } catch (IOException | GeneralSecurityException ex) {
        throw new CalendarServiceException(ex);
    }
    return new GoogleCalendar(summary, description, calendar.getId(), true);
}
Also used : GoogleCalendar(fi.otavanopisto.muikku.plugins.googlecalendar.model.GoogleCalendar) Calendar(com.google.api.services.calendar.Calendar) GoogleCalendar(fi.otavanopisto.muikku.plugins.googlecalendar.model.GoogleCalendar) GeneralSecurityException(java.security.GeneralSecurityException) IOException(java.io.IOException) CalendarServiceException(fi.otavanopisto.muikku.calendar.CalendarServiceException)

Example 7 with CalendarServiceException

use of fi.otavanopisto.muikku.calendar.CalendarServiceException in project muikku by otavanopisto.

the class GoogleCalendarLoginListener method onLogin.

public void onLogin(@Observes LoginEvent event) {
    UserEntity userEntity = userEntityController.findUserEntityById(event.getUserEntityId());
    if (userEntity != null) {
        UserCalendar userCalendar = calendarController.findUserCalendarByUserAndProvider(userEntity, "google");
        if (userCalendar == null) {
            logger.info("User does not have a calendar, creating one");
            try {
                userCalendar = calendarController.createCalendar(userEntity, "google", CALENDAR_SUMMARY, CALENDAR_DESCRIPTION, Boolean.TRUE);
                for (String email : userEmailEntityController.getUserEmailAddresses(event.getUserIdentifier())) {
                    try {
                        logger.info(String.format("Sharing Google calendar with %s", email));
                        googleCalendarClient.insertCalendarUserAclRule(userCalendar.getCalendarId(), email, "owner");
                    } catch (CalendarServiceException e) {
                        logger.log(Level.WARNING, String.format("Could not share calendar with %s", email), e);
                    }
                }
            } catch (CalendarServiceException e) {
                logger.log(Level.SEVERE, "Failed to create new Google calendar", e);
            }
        }
    }
}
Also used : CalendarServiceException(fi.otavanopisto.muikku.calendar.CalendarServiceException) UserCalendar(fi.otavanopisto.muikku.plugins.calendar.model.UserCalendar) UserEntity(fi.otavanopisto.muikku.model.users.UserEntity)

Example 8 with CalendarServiceException

use of fi.otavanopisto.muikku.calendar.CalendarServiceException in project muikku by otavanopisto.

the class CalendarController method createCalendarEvent.

public CalendarEvent createCalendarEvent(UserCalendar userCalendar, String summary, String description, CalendarEventStatus status, Date start, TimeZone startTimeZone, Date end, TimeZone endTimeZone, List<CalendarEventAttendee> attendees, List<CalendarEventReminder> reminders, String recurrence, boolean allDay, Map<String, String> extendedProperties) throws CalendarServiceException {
    CalendarServiceProvider provider = getCalendarServiceProvider(userCalendar.getCalendarProvider());
    Calendar calendar = provider.findCalendar(userCalendar.getCalendarId());
    if (calendar == null) {
        throw new CalendarServiceException("Could not find calendar for user calendar #" + userCalendar.getId());
    }
    return provider.createEvent(calendar.getId(), summary, description, status, attendees, new DefaultCalendarEventTemporalField(start, startTimeZone), new DefaultCalendarEventTemporalField(end, endTimeZone), reminders, recurrence, allDay);
}
Also used : CalendarServiceException(fi.otavanopisto.muikku.calendar.CalendarServiceException) DefaultCalendarEventTemporalField(fi.otavanopisto.muikku.calendar.DefaultCalendarEventTemporalField) CalendarServiceProvider(fi.otavanopisto.muikku.calendar.CalendarServiceProvider) Calendar(fi.otavanopisto.muikku.calendar.Calendar) UserCalendar(fi.otavanopisto.muikku.plugins.calendar.model.UserCalendar)

Example 9 with CalendarServiceException

use of fi.otavanopisto.muikku.calendar.CalendarServiceException in project muikku by otavanopisto.

the class CalendarController method listCalendarEvents.

public List<fi.otavanopisto.muikku.calendar.CalendarEvent> listCalendarEvents(UserCalendar userCalendar, OffsetDateTime timeMin, OffsetDateTime timeMax) throws CalendarServiceException {
    CalendarServiceProvider provider = getCalendarServiceProvider(userCalendar.getCalendarProvider());
    Calendar calendar = provider.findCalendar(userCalendar.getCalendarId());
    if (calendar == null) {
        throw new CalendarServiceException("Could not find calendar for user calendar #" + userCalendar.getId());
    }
    if (timeMin != null || timeMax != null) {
        return provider.listEvents(timeMin, timeMax, calendar.getId());
    } else {
        return provider.listEvents(calendar.getId());
    }
}
Also used : CalendarServiceException(fi.otavanopisto.muikku.calendar.CalendarServiceException) CalendarServiceProvider(fi.otavanopisto.muikku.calendar.CalendarServiceProvider) Calendar(fi.otavanopisto.muikku.calendar.Calendar) UserCalendar(fi.otavanopisto.muikku.plugins.calendar.model.UserCalendar)

Example 10 with CalendarServiceException

use of fi.otavanopisto.muikku.calendar.CalendarServiceException in project muikku by otavanopisto.

the class CalendarController method deleteCalendarEvent.

public void deleteCalendarEvent(UserCalendar userCalendar, String eventId) throws CalendarServiceException {
    CalendarServiceProvider provider = getCalendarServiceProvider(userCalendar.getCalendarProvider());
    Calendar calendar = provider.findCalendar(userCalendar.getCalendarId());
    if (calendar == null) {
        throw new CalendarServiceException("Could not find calendar for user calendar #" + userCalendar.getId());
    }
    provider.deleteEvent(calendar, eventId);
}
Also used : CalendarServiceException(fi.otavanopisto.muikku.calendar.CalendarServiceException) CalendarServiceProvider(fi.otavanopisto.muikku.calendar.CalendarServiceProvider) Calendar(fi.otavanopisto.muikku.calendar.Calendar) UserCalendar(fi.otavanopisto.muikku.plugins.calendar.model.UserCalendar)

Aggregations

CalendarServiceException (fi.otavanopisto.muikku.calendar.CalendarServiceException)13 UserCalendar (fi.otavanopisto.muikku.plugins.calendar.model.UserCalendar)10 Calendar (fi.otavanopisto.muikku.calendar.Calendar)6 CalendarServiceProvider (fi.otavanopisto.muikku.calendar.CalendarServiceProvider)6 DefaultCalendarEvent (fi.otavanopisto.muikku.calendar.DefaultCalendarEvent)3 RESTPermitUnimplemented (fi.otavanopisto.muikku.rest.RESTPermitUnimplemented)3 IOException (java.io.IOException)3 GeneralSecurityException (java.security.GeneralSecurityException)3 ArrayList (java.util.ArrayList)3 Path (javax.ws.rs.Path)3 Calendar (com.google.api.services.calendar.Calendar)2 DefaultCalendarEventAttendee (fi.otavanopisto.muikku.calendar.DefaultCalendarEventAttendee)2 DefaultCalendarEventReminder (fi.otavanopisto.muikku.calendar.DefaultCalendarEventReminder)2 DefaultCalendarEventTemporalField (fi.otavanopisto.muikku.calendar.DefaultCalendarEventTemporalField)2 CalendarEventAttendee (fi.otavanopisto.muikku.plugins.calendar.rest.model.CalendarEventAttendee)2 CalendarEventReminder (fi.otavanopisto.muikku.plugins.calendar.rest.model.CalendarEventReminder)2 GoogleCalendar (fi.otavanopisto.muikku.plugins.googlecalendar.model.GoogleCalendar)2 DateTime (com.google.api.client.util.DateTime)1 CalendarListEntry (com.google.api.services.calendar.model.CalendarListEntry)1 Event (com.google.api.services.calendar.model.Event)1