Module: DeskApi::Resource::QueryParams
- Included in:
- DeskApi::Resource
- Defined in:
- lib/desk_api/resource/query_params.rb
Overview
QueryParams specifies all the url query param modifiers.
Instance Method Summary collapse
-
#embed(*embedds) ⇒ Desk::Resource
Allows you to embed/sideload resources.
-
#method ⇒ Integer/DeskApi::Resource
Get/set the page and per_page query params.
-
#query_params ⇒ Hash
Converts the current self href query params to a hash.
-
#query_params=(params = {}) ⇒ String
Sets the query params based on the provided hash.
-
#query_params_include?(param) ⇒ Boolean
Checks if the specified param is included.
Instance Method Details
#embed(*embedds) ⇒ Desk::Resource
Allows you to embed/sideload resources
50 51 52 53 54 |
# File 'lib/desk_api/resource/query_params.rb', line 50 def (*) # make sure we don't try to embed anything that's not defined # add it to the query self.tap{ |res| res.query_params = { embed: .join(',') } } end |
#method ⇒ Integer/DeskApi::Resource
Get/set the page and per_page query params
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/desk_api/resource/query_params.rb', line 60 %w(page per_page).each do |method| class_eval " def \#{method}(value = nil)\n unless value\n exec! if query_params_include?('\#{method}') == nil\n return query_params_include?('\#{method}').to_i\n end\n tap{ |res| res.query_params = Hash['\#{method}', value.to_s] }\n end\n RUBY\nend\n", __FILE__, __LINE__ + 1 |
#query_params ⇒ Hash
Converts the current self href query params to a hash
75 76 77 |
# File 'lib/desk_api/resource/query_params.rb', line 75 def query_params Addressable::URI.parse(href).query_values || {} end |
#query_params=(params = {}) ⇒ String
Sets the query params based on the provided hash
91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/desk_api/resource/query_params.rb', line 91 def query_params=(params = {}) return href if params.empty? params.keys.each{ |key| params[key] = params[key].join(',') if params[key].is_a?(Array) } uri = Addressable::URI.parse(href) params = (uri.query_values || {}).merge(params) @_loaded = false unless params == uri.query_values uri.query_values = params self.href = uri.to_s end |
#query_params_include?(param) ⇒ Boolean
Checks if the specified param is included
83 84 85 |
# File 'lib/desk_api/resource/query_params.rb', line 83 def query_params_include?(param) query_params.include?(param) ? query_params[param] : nil end |