retrieveEvents method
Future<Result<UnmodifiableListView<Event> > >
retrieveEvents(
- String? calendarId,
- RetrieveEventsParams? retrieveEventsParams
Retrieves the events from the specified calendar
The calendarId
paramter is the id of the calendar that plugin will return events for
The retrieveEventsParams
parameter combines multiple properties that
specifies conditions of the events retrieval. For instance, defining RetrieveEventsParams.startDate
and RetrieveEventsParams.endDate will return events only happening in that time range
Returns a Result containing a list Event, that fall into the specified parameters
Implementation
Future<Result<UnmodifiableListView<Event>>> retrieveEvents(
String? calendarId,
RetrieveEventsParams? retrieveEventsParams,
) async {
return _invokeChannelMethod(
ChannelConstants.methodNameRetrieveEvents,
assertParameters: (result) {
_validateCalendarIdParameter(
result,
calendarId,
);
_assertParameter(
result,
!((retrieveEventsParams?.eventIds?.isEmpty ?? true) &&
((retrieveEventsParams?.startDate == null ||
retrieveEventsParams?.endDate == null) ||
(retrieveEventsParams?.startDate != null &&
retrieveEventsParams?.endDate != null &&
(retrieveEventsParams != null && retrieveEventsParams.startDate!.isAfter(retrieveEventsParams.endDate!))))),
ErrorCodes.invalidArguments,
ErrorMessages.invalidRetrieveEventsParams,
);
},
arguments: () => <String, Object?>{
ChannelConstants.parameterNameCalendarId: calendarId,
ChannelConstants.parameterNameStartDate: retrieveEventsParams?.startDate?.millisecondsSinceEpoch,
ChannelConstants.parameterNameEndDate: retrieveEventsParams?.endDate?.millisecondsSinceEpoch,
ChannelConstants.parameterNameEventIds: retrieveEventsParams?.eventIds,
},
evaluateResponse: (rawData) => UnmodifiableListView(
json
.decode(rawData)
.map<Event>((decodedEvent) => Event.fromJson(decodedEvent)),
),
);
}