module StarkBank::Utils::Rest
Public Class Methods
delete_id(resource_name:, resource_maker:, id:, user: nil)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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