Class: Delighted::Client
- Inherits:
-
Object
- Object
- Delighted::Client
- Defined in:
- lib/delighted/client.rb
Constant Summary collapse
- DEFAULT_API_BASE_URL =
"https://api.delightedapp.com/v1"
- DEFAULT_HTTP_ADAPTER =
HTTPAdapter.new
Instance Method Summary collapse
- #delete_json(path, params = {}) ⇒ Object
- #get_json(path, params = {}) ⇒ Object
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
- #post_json(path, params = {}) ⇒ Object
- #put_json(path, params = {}) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
6 7 8 9 10 |
# File 'lib/delighted/client.rb', line 6 def initialize(opts = {}) @api_key = opts[:api_key] or raise ArgumentError, "You must provide an API key by setting Delighted.api_key = '123abc' or passing { :api_key => '123abc' } when instantiating Delighted::Client.new" @api_base_url = opts[:api_base_url] || DEFAULT_API_BASE_URL @http_adapter = opts[:http_adapter] || DEFAULT_HTTP_ADAPTER end |
Instance Method Details
#delete_json(path, params = {}) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/delighted/client.rb', line 42 def delete_json(path, params = {}) headers = default_headers.dup.merge('Accept' => 'application/json', 'Content-Type' => 'application/json') uri = URI.parse(File.join(@api_base_url, path)) data = JSON.dump(params) unless params.empty? response = @http_adapter.request(:delete, uri, headers, data) handle_json_response(response) end |
#get_json(path, params = {}) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/delighted/client.rb', line 12 def get_json(path, params = {}) headers = default_headers.dup.merge('Accept' => 'application/json') uri = URI.parse(File.join(@api_base_url, path)) uri.query = Utils.to_query(params) unless params.empty? response = @http_adapter.request(:get, uri, headers) handle_json_response(response) end |
#post_json(path, params = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/delighted/client.rb', line 22 def post_json(path, params = {}) headers = default_headers.dup.merge('Accept' => 'application/json', 'Content-Type' => 'application/json') uri = URI.parse(File.join(@api_base_url, path)) data = JSON.dump(params) unless params.empty? response = @http_adapter.request(:post, uri, headers, data) handle_json_response(response) end |
#put_json(path, params = {}) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/delighted/client.rb', line 32 def put_json(path, params = {}) headers = default_headers.dup.merge('Accept' => 'application/json', 'Content-Type' => 'application/json') uri = URI.parse(File.join(@api_base_url, path)) data = JSON.dump(params) unless params.empty? response = @http_adapter.request(:put, uri, headers, data) handle_json_response(response) end |