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_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
- .get_list(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
- .get_pdf(resource_name:, resource_maker:, id:, user: nil) ⇒ 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
89 90 91 92 93 94 95 96 97 |
# File 'lib/utils/rest.rb', line 89 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_id(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/utils/rest.rb', line 40 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_list(resource_name:, resource_maker:, user: nil, **query) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/utils/rest.rb', line 9 def self.get_list(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? || (!limit.nil? && limit <= 0) end end end |
.get_pdf(resource_name:, resource_maker:, id:, user: nil) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/utils/rest.rb', line 50 def self.get_pdf(resource_name:, resource_maker:, id:, user: nil) StarkBank::Utils::Request.fetch( method: 'GET', path: "#{StarkBank::Utils::API.endpoint(resource_name)}/#{id}/pdf", user: user ).content end |
.patch_id(resource_name:, resource_maker:, id:, user: nil, **payload) ⇒ Object
99 100 101 102 103 104 105 106 107 108 |
# File 'lib/utils/rest.rb', line 99 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
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/utils/rest.rb', line 58 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
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/utils/rest.rb', line 78 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 |