Class: DiscoApp::ApiClient

Inherits:
Object
  • Object
show all
Defined in:
app/clients/disco_app/api_client.rb

Constant Summary collapse

SUBSCRIPTION_ENDPOINT =
'app_subscriptions.json'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(shop, url) ⇒ ApiClient

Returns a new instance of ApiClient.



11
12
13
14
# File 'app/clients/disco_app/api_client.rb', line 11

def initialize(shop, url)
  @shop = shop
  @url = url
end

Instance Method Details

#create_app_subscriptionObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/clients/disco_app/api_client.rb', line 16

def create_app_subscription
  return if @url.blank?

  url = @url + SUBSCRIPTION_ENDPOINT
  begin
    RestClient::Request.execute(
      method: :post,
      headers: { content_type: :json },
      url: url,
      payload: { shop: @shop, subscription: @shop.current_subscription }.to_json
    )
  rescue RestClient::BadRequest, RestClient::ResourceNotFound => e
    raise DiscoApiError, e.message
  end
end