Class: LeanMicrosoftGraph::Resource
- Inherits:
-
Object
- Object
- LeanMicrosoftGraph::Resource
- Defined in:
- lib/lean_microsoft_graph/resource.rb
Direct Known Subclasses
LeanMicrosoftGraph::Resources::TokenResource, LeanMicrosoftGraph::Resources::UsersResource
Instance Method Summary collapse
- #get_request(url, params = {}, headers = {}, &block) ⇒ Object
- #handle_response(response) ⇒ Object private
-
#initialize(connection) ⇒ Resource
constructor
A new instance of Resource.
- #parse_error(parsed_response) ⇒ Object private
- #post_request(url, body = {}, headers = {}, &block) ⇒ Object
Constructor Details
#initialize(connection) ⇒ Resource
Returns a new instance of Resource.
5 6 7 |
# File 'lib/lean_microsoft_graph/resource.rb', line 5 def initialize(connection) @connection = connection end |
Instance Method Details
#get_request(url, params = {}, headers = {}, &block) ⇒ Object
9 10 11 |
# File 'lib/lean_microsoft_graph/resource.rb', line 9 def get_request(url, params = {}, headers = {}, &block) handle_response(@connection.get(url, params, headers, &block)) end |
#handle_response(response) ⇒ Object (private)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/lean_microsoft_graph/resource.rb', line 19 def handle_response(response) parsed_response = JSON.parse(response.body, symbolize_names: true) return parsed_response if (200..299).include?(response.status) , error_code = parse_error(parsed_response) case { status: response.status, code: error_code, message: } in { status: 400, code: code, message: } raise Error, "Bad request. Code: #{code}. Message: #{}" in { status: 401, code: code, message: } raise Error, "Unauthorized. Check permissions or authentication token. Code: #{code}. Message: #{}" in { status: 403, code: code, message: } raise Error, "Forbidden. Insufficient permissions. Code: #{code}. Message: #{}" in { status: 404, code: code, message: } raise Error, "Resource not found. Code: #{code}. Message: #{}" in { status: 429, code: code, message: } raise Error, "Too many requests. Rate limit exceeded. Code: #{code}. Message: #{}" in { status: 500, code: code, message: } raise Error, "Internal server error. Code: #{code}. Message: #{}" in { status: 503, code: code, message: } raise Error, "Service unavailable. Try again later. Code: #{code}. Message: #{}" else raise Error, "An unknown error occurred with status: #{response.status}." end end |
#parse_error(parsed_response) ⇒ Object (private)
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/lean_microsoft_graph/resource.rb', line 45 def parse_error(parsed_response) if parsed_response[:error].is_a?(Hash) error_code = parsed_response[:error][:code] = parsed_response[:error][:message] else error_code = parsed_response[:error_codes] = parsed_response[:error_description] end [, error_code] end |
#post_request(url, body = {}, headers = {}, &block) ⇒ Object
13 14 15 |
# File 'lib/lean_microsoft_graph/resource.rb', line 13 def post_request(url, body = {}, headers = {}, &block) handle_response(@connection.post(url, body, headers, &block)) end |