class Calendav::Clients::EventsClient
Attributes
client[R]
credentials[R]
endpoint[R]
Public Class Methods
new(client, endpoint, credentials)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 10 def initialize(client, endpoint, credentials) @client = client @endpoint = endpoint @credentials = credentials end
Public Instance Methods
create(calendar_url, event_identifier, ics)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 16 def create(calendar_url, event_identifier, ics) event_url = merged_url(calendar_url, event_identifier) result = endpoint.put(ics, url: event_url, content_type: :ics) result.headers["Location"] || event_url end
delete(event_url, etag: nil)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 23 def delete(event_url, etag: nil) endpoint.delete(url: event_url, etag: etag) rescue PreconditionError false end
find(event_url)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 29 def find(event_url) response = endpoint.get(url: event_url) Event.new( url: event_url, calendar_data: response.body.to_s, etag: response.headers["ETag"] ) end
list(calendar_url, from: nil, to: nil)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 39 def list(calendar_url, from: nil, to: nil) request = Requests::ListEvents.call(from: from, to: to) endpoint .report(request.to_xml, url: calendar_url, depth: 1) .reject { |node| node.xpath(".//caldav:calendar-data").text.empty? } .collect { |node| Event.from_xml(calendar_url, node) } end
update(event_url, ics, etag: nil)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 48 def update(event_url, ics, etag: nil) endpoint.put( ics, url: event_url, content_type: :ics, etag: etag ) true rescue PreconditionError false end
Private Instance Methods
merged_url(calendar_url, event_identifier)
click to toggle source
# File lib/calendav/clients/events_client.rb, line 62 def merged_url(calendar_url, event_identifier) "#{calendar_url.delete_suffix('/')}/#{event_identifier}" end