Module: HelloBlock::Query
Constant Summary
APIParameters::API_PARAMETERS
Constants included
from Endpoints
Endpoints::ENDPOINTS
Instance Method Summary
collapse
Methods included from Endpoints
#base_url, #version_path
Instance Method Details
#[](attribute) ⇒ Object
54
55
56
|
# File 'lib/helloblock/resources/query.rb', line 54
def [](attribute)
to_hash[attribute]
end
|
#[]=(attribute, value) ⇒ Object
58
59
60
|
# File 'lib/helloblock/resources/query.rb', line 58
def []=(attribute, value)
to_hash[attribute] = value
end
|
#default_query ⇒ Object
13
14
15
|
# File 'lib/helloblock/resources/query.rb', line 13
def default_query
{ path: ENDPOINTS[parent_class], params: {} }
end
|
#determine_parent_resource ⇒ Object
exceptions: querying transactions with addresses actually hits /addresses/transactions endpoint
68
69
70
71
72
|
# File 'lib/helloblock/resources/query.rb', line 68
def determine_parent_resource
if query[:path] == ENDPOINTS[:transaction] && query[:params][:addresses]
query[:path] = ENDPOINTS[:addresses_transactions]
end
end
|
#find(id) ⇒ Object
21
22
23
24
|
# File 'lib/helloblock/resources/query.rb', line 21
def find(id)
query[:path] += id
self
end
|
#inspect ⇒ Object
62
63
64
|
# File 'lib/helloblock/resources/query.rb', line 62
def inspect
to_hash.to_s
end
|
#last(limit) ⇒ Object
36
37
38
39
40
|
# File 'lib/helloblock/resources/query.rb', line 36
def last(limit)
query[:path] = ENDPOINTS[parent_class] + ENDPOINTS[:latest]
query[:params][:limit] = limit
self
end
|
#offset(number) ⇒ Object
42
43
44
45
|
# File 'lib/helloblock/resources/query.rb', line 42
def offset(number)
query[:params][:offset] = number
self
end
|
#parent_class ⇒ Object
17
18
19
|
# File 'lib/helloblock/resources/query.rb', line 17
def parent_class
self.to_s.split('::').last.downcase.to_sym
end
|
#query ⇒ Object
9
10
11
|
# File 'lib/helloblock/resources/query.rb', line 9
def query
@query ||= default_query
end
|
#to_hash ⇒ Object
47
48
49
50
51
52
|
# File 'lib/helloblock/resources/query.rb', line 47
def to_hash
(query_copy = query.clone) and (@query = default_query)
method = query_copy[:params][:post] ? :post : :get
query_copy[:params].delete(:post)
HelloBlock.send(method, query_copy[:path], query_copy[:params])
end
|
#where(conditions) ⇒ Object
where(transaction: […]) => converts :transaction to API’s :txHashes
27
28
29
30
31
32
33
34
|
# File 'lib/helloblock/resources/query.rb', line 27
def where(conditions)
conditions.each do |resource, ids|
api_resource = API_PARAMETERS[resource] || resource
query[:params][api_resource] = ids
end
determine_parent_resource
self
end
|