class CS::Request

Attributes

arrival[RW]
arrival_flexible[RW]
departure[RW]
departure_flexible[RW]
from[RW]
is_open_couchrequest[RW]
message[RW]
number[RW]
subject[RW]
to[RW]

Public Class Methods

new(options={}) click to toggle source
# File lib/csapi/request.rb, line 24
def initialize options={}
  options = @defaults.merge(options)
  options.each do |k,v|
    self.send "@#{k}=", val
  end
end

Public Instance Methods

arrival=(date) click to toggle source
# File lib/csapi/request.rb, line 32
def arrival= date
  raise ArgumentError.new("This does not seem like a Time instance") unless date.is_a? Time
  @arrival = date
end
departure=(date) click to toggle source
# File lib/csapi/request.rb, line 38
def departure= date
  raise ArgumentError.new("This does not seem like a Time instance") unless date.is_a? Time
  @departure = date
end
send!() click to toggle source
# File lib/csapi/request.rb, line 51
def send!
  raise CS::APIError('You have not authenticated with the service or did not provide a :username and :password') unless CS.instance

  data = self.to_h
  data[:arrival] = data[:arrival].strftime("%FT%TZ")
  data[:departure] = data[:departure].strftime("%FT%TZ")

  me = CS.instance.userdata['uid']
  data[:from] ||= me
  data[:to] ||= me

  CS::HTTP.post('/couchrequests', body: data)

end
to_h() click to toggle source
# File lib/csapi/request.rb, line 44
def to_h
  params = {}
  @options.each {|key| params[key.to_sym] = instance_variable_get("@#{key}") }
  params
end