Module: StarkBank::Utils::Rest
- Defined in:
- lib/utils/rest.rb
Class Method Summary collapse
- .delete_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
- .get_content(resource_name:, resource_maker:, sub_resource_name:, id:, user: nil, **query) ⇒ Object
- .get_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
- .get_page(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
- .get_stream(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
- .get_sub_resource(resource_name:, sub_resource_maker:, sub_resource_name:, id:, user: nil, **query) ⇒ Object
- .patch_id(resource_name:, resource_maker:, id:, user: nil, **payload) ⇒ Object
- .post(resource_name:, resource_maker:, entities:, user: nil) ⇒ Object
- .post_single(resource_name:, resource_maker:, entity:, user: nil) ⇒ Object
Class Method Details
.delete_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
103 104 105 106 107 108 109 110 111 |
# File 'lib/utils/rest.rb', line 103 def self.delete_id(resource_name:, resource_maker:, id:, user: nil) json = StarkBank::Utils::Request.fetch( method: 'DELETE', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}", user: user ).json entity = json[StarkBank::Utils::API.last_name(resource_name)] StarkBank::Utils::API.from_api_json(resource_maker, entity) end |
.get_content(resource_name:, resource_maker:, sub_resource_name:, id:, user: nil, **query) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/utils/rest.rb', line 63 def self.get_content(resource_name:, resource_maker:, sub_resource_name:, id:, user: nil, **query) StarkBank::Utils::Request.fetch( method: 'GET', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}/#{sub_resource_name}", query: StarkBank::Utils::API.cast_json_to_api_format(query), user: user ).content end |
.get_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/utils/rest.rb', line 53 def self.get_id(resource_name:, resource_maker:, id:, user: nil) json = StarkBank::Utils::Request.fetch( method: 'GET', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}", user: user ).json entity = json[StarkBank::Utils::API.last_name(resource_name)] StarkBank::Utils::API.from_api_json(resource_maker, entity) end |
.get_page(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/utils/rest.rb', line 9 def self.get_page(resource_name:, resource_maker:, user: nil, **query) json = StarkBank::Utils::Request.fetch( method: 'GET', path: StarkBank::Utils::API.endpoint(resource_name), query: query, user: user ).json entities = [] json[StarkBank::Utils::API.last_name_plural(resource_name)].each do |entity_json| entities << StarkBank::Utils::API.from_api_json(resource_maker, entity_json) end return entities, json['cursor'] end |
.get_stream(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/utils/rest.rb', line 23 def self.get_stream(resource_name:, resource_maker:, user: nil, **query) limit = query[:limit] query[:limit] = limit.nil? ? limit : [limit, 100].min Enumerator.new do |enum| loop do json = StarkBank::Utils::Request.fetch( method: 'GET', path: StarkBank::Utils::API.endpoint(resource_name), query: query, user: user ).json entities = json[StarkBank::Utils::API.last_name_plural(resource_name)] entities.each do |entity| enum << StarkBank::Utils::API.from_api_json(resource_maker, entity) end unless limit.nil? limit -= 100 query[:limit] = [limit, 100].min end cursor = json['cursor'] query['cursor'] = cursor break if cursor.nil? || cursor.empty? || (!limit.nil? && limit <= 0) end end end |
.get_sub_resource(resource_name:, sub_resource_maker:, sub_resource_name:, id:, user: nil, **query) ⇒ Object
124 125 126 127 128 129 130 131 132 133 |
# File 'lib/utils/rest.rb', line 124 def self.get_sub_resource(resource_name:, sub_resource_maker:, sub_resource_name:, id:, user: nil, **query) json = StarkBank::Utils::Request.fetch( method: 'GET', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}/#{StarkBank::Utils::API.endpoint(sub_resource_name)}", user: user, query: StarkBank::Utils::API.cast_json_to_api_format(query) ).json entity = json[StarkBank::Utils::API.last_name(sub_resource_name)] StarkBank::Utils::API.from_api_json(sub_resource_maker, entity) end |
.patch_id(resource_name:, resource_maker:, id:, user: nil, **payload) ⇒ Object
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/utils/rest.rb', line 113 def self.patch_id(resource_name:, resource_maker:, id:, user: nil, **payload) json = StarkBank::Utils::Request.fetch( method: 'PATCH', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}", user: user, payload: StarkBank::Utils::API.cast_json_to_api_format(payload) ).json entity = json[StarkBank::Utils::API.last_name(resource_name)] StarkBank::Utils::API.from_api_json(resource_maker, entity) end |
.post(resource_name:, resource_maker:, entities:, user: nil) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/utils/rest.rb', line 72 def self.post(resource_name:, resource_maker:, entities:, user: nil) jsons = [] entities.each do |entity| jsons << StarkBank::Utils::API.api_json(entity) end payload = { StarkBank::Utils::API.last_name_plural(resource_name) => jsons } json = StarkBank::Utils::Request.fetch( method: 'POST', path: StarkBank::Utils::API.endpoint(resource_name), payload: payload, user: user ).json returned_jsons = json[StarkBank::Utils::API.last_name_plural(resource_name)] entities = [] returned_jsons.each do |returned_json| entities << StarkBank::Utils::API.from_api_json(resource_maker, returned_json) end entities end |
.post_single(resource_name:, resource_maker:, entity:, user: nil) ⇒ Object
92 93 94 95 96 97 98 99 100 101 |
# File 'lib/utils/rest.rb', line 92 def self.post_single(resource_name:, resource_maker:, entity:, user: nil) json = StarkBank::Utils::Request.fetch( method: 'POST', path: StarkBank::Utils::API.endpoint(resource_name), payload: StarkBank::Utils::API.api_json(entity), user: user ).json entity_json = json[StarkBank::Utils::API.last_name(resource_name)] StarkBank::Utils::API.from_api_json(resource_maker, entity_json) end |