module DockHealthApi class Resource < Object def self.class_name name.split("::")[-1] end def self.url_version return "v1" end def self.client DockHealthApi::Client.instance end def self.resource_url if self == Resource raise NotImplementedError, "Resource is an abstract class. You should perform actions " \ "on its subclasses (e.g. Patient)" end "#{client.config.resource_url}/api/#{url_version}/#{class_name.downcase}" end def self.headers {"Content-Type": "application/json", "x-api-key": client.config.api, "x-user-id": client.config.user_id, "x-organization-id": client.config.org_id} end def self.execute_request(method, url, params: {}, headers: {}, body_params: nil) response = client.token_connection.send(method, url, params: params, headers: headers, body: body_params.to_json) client.config.debug ? response : response.parsed end end end