module Bamboozled module API class TimeOff < Base 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 def whos_out(start_date, end_date = nil) start_date = start_date.strftime("%F") unless start_date.is_a?(String) end_date = end_date.strftime("%F") unless end_date.nil? || end_date.is_a?(String) request(:get, "time_off/whos_out?start=#{start_date}&end=#{end_date}") end end end end