Class: Serrano::Request
- Inherits:
-
Object
- Object
- Serrano::Request
- Includes:
- Helpers
- Defined in:
- lib/serrano/request.rb,
lib/serrano/filterhandler.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#agency ⇒ Object
Returns the value of attribute agency.
-
#endpt ⇒ Object
Returns the value of attribute endpt.
-
#facet ⇒ Object
Returns the value of attribute facet.
-
#filter ⇒ Object
Returns the value of attribute filter.
-
#id ⇒ Object
Returns the value of attribute id.
-
#limit ⇒ Object
Returns the value of attribute limit.
-
#offset ⇒ Object
Returns the value of attribute offset.
-
#options ⇒ Object
Returns the value of attribute options.
-
#order ⇒ Object
Returns the value of attribute order.
-
#query ⇒ Object
Returns the value of attribute query.
-
#sample ⇒ Object
Returns the value of attribute sample.
-
#select ⇒ Object
Returns the value of attribute select.
-
#sort ⇒ Object
Returns the value of attribute sort.
-
#verbose ⇒ Object
Returns the value of attribute verbose.
-
#works ⇒ Object
Returns the value of attribute works.
Instance Method Summary collapse
-
#initialize(endpt, id, query, filter, offset, limit, sample, sort, order, facet, select, works, agency, options, verbose) ⇒ Request
constructor
A new instance of Request.
- #perform ⇒ Object
Methods included from Helpers
#filter_handler, #rename_keys, #stringify
Constructor Details
#initialize(endpt, id, query, filter, offset, limit, sample, sort, order, facet, select, works, agency, options, verbose) ⇒ Request
Returns a new instance of Request.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/serrano/request.rb', line 31 def initialize(endpt, id, query, filter, offset, limit, sample, sort, order, facet, select, works, agency, , verbose) self.endpt = endpt self.id = id self.query = query self.filter = filter self.offset = offset self.limit = limit self.sample = sample self.sort = sort self.order = order self.facet = facet self.select = select self.works = works self.agency = agency self. = self.verbose = verbose end |
Instance Attribute Details
#agency ⇒ Object
Returns the value of attribute agency.
27 28 29 |
# File 'lib/serrano/request.rb', line 27 def agency @agency end |
#endpt ⇒ Object
Returns the value of attribute endpt.
15 16 17 |
# File 'lib/serrano/request.rb', line 15 def endpt @endpt end |
#facet ⇒ Object
Returns the value of attribute facet.
24 25 26 |
# File 'lib/serrano/request.rb', line 24 def facet @facet end |
#filter ⇒ Object
Returns the value of attribute filter.
18 19 20 |
# File 'lib/serrano/request.rb', line 18 def filter @filter end |
#id ⇒ Object
Returns the value of attribute id.
16 17 18 |
# File 'lib/serrano/request.rb', line 16 def id @id end |
#limit ⇒ Object
Returns the value of attribute limit.
20 21 22 |
# File 'lib/serrano/request.rb', line 20 def limit @limit end |
#offset ⇒ Object
Returns the value of attribute offset.
19 20 21 |
# File 'lib/serrano/request.rb', line 19 def offset @offset end |
#options ⇒ Object
Returns the value of attribute options.
28 29 30 |
# File 'lib/serrano/request.rb', line 28 def end |
#order ⇒ Object
Returns the value of attribute order.
23 24 25 |
# File 'lib/serrano/request.rb', line 23 def order @order end |
#query ⇒ Object
Returns the value of attribute query.
17 18 19 |
# File 'lib/serrano/request.rb', line 17 def query @query end |
#sample ⇒ Object
Returns the value of attribute sample.
21 22 23 |
# File 'lib/serrano/request.rb', line 21 def sample @sample end |
#select ⇒ Object
Returns the value of attribute select.
25 26 27 |
# File 'lib/serrano/request.rb', line 25 def select @select end |
#sort ⇒ Object
Returns the value of attribute sort.
22 23 24 |
# File 'lib/serrano/request.rb', line 22 def sort @sort end |
#verbose ⇒ Object
Returns the value of attribute verbose.
29 30 31 |
# File 'lib/serrano/request.rb', line 29 def verbose @verbose end |
#works ⇒ Object
Returns the value of attribute works.
26 27 28 |
# File 'lib/serrano/request.rb', line 26 def works @works end |
Instance Method Details
#perform ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/serrano/request.rb', line 52 def perform filt = filter_handler(self.filter) self.select = self.select.join(",") if self.select && self.select.class == Array args = { query: self.query, filter: filt, offset: self.offset, rows: self.limit, sample: self.sample, sort: self.sort, order: self.order, facet: self.facet, select: self.select } opts = args.delete_if { |k, v| v.nil? } if verbose conn = Faraday.new(:url => Serrano.base_url, :request => || []) do |f| f.response :logger f.use FaradayMiddleware::RaiseHttpException f.adapter Faraday.default_adapter end else conn = Faraday.new(:url => Serrano.base_url, :request => || []) do |f| f.use FaradayMiddleware::RaiseHttpException f.adapter Faraday.default_adapter end end conn.headers[:user_agent] = make_ua conn.headers["X-USER-AGENT"] = make_ua if self.id.nil? res = conn.get self.endpt, opts return MultiJson.load(res.body) else coll = [] Array(self.id).each do |x| if self.works endpt = self.endpt + '/' + x.to_s + "/works" else if self.agency endpt = self.endpt + '/' + x.to_s + "/agency" else endpt = self.endpt + '/' + x.to_s end end res = conn.get endpt, opts coll << MultiJson.load(res.body) end return coll end end |