Method: Bamboozled::API::TimeOff#requests

Defined in:
lib/bamboozled/api/time_off.rb

#requests(options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/bamboozled/api/time_off.rb', line 4

def requests(options = {})
  allowed_parameters = i[id action employeeId start end type status]
  options = options.keep_if { |k, _| allowed_parameters.include? k }

  # Convert non string dates to strings.
  i[start end].each do |action|
    if options[action] && !options[action].is_a?(String)
      options[action] = options[action].strftime("%F")
    end
  end

  # Make sure all statuses are allowed
  if options[:status]
    allowed_statuses = %w[approved denied superceded requested canceled]
    options[:status] = Array(options[:status])
                       .keep_if { |v| allowed_statuses.include? v }
                       .join(",")
  end

  request(:get, "time_off/requests?#{URI.encode_www_form(options)}")
end