class SubscriptionApi

Attributes

base_url[RW]
http_client[RW]

Public Class Methods

new(config) click to toggle source
# File lib/tacklebox/apis/subscription_api.rb, line 10
def initialize(config)
  self.base_url = config[:base_url]
  self.http_client = HttpClient.new(config[:api_key])
end

Public Instance Methods

create_subscription(service_id, user_id, subscription_data) click to toggle source
# File lib/tacklebox/apis/subscription_api.rb, line 34
def create_subscription(service_id, user_id, subscription_data)
  if !self.is_valid_id(service_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The create_subscription method must be invoked with a non-empty string service_id argument."
    )
  end
  if !self.is_valid_id(user_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The create_subscription method must be invoked with a non-empty string user_id argument."
    )
  end
  if !self.is_valid_subscription_data(subscription_data)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The create_subscription method must be invoked with non-empty url and event_types arguments."
    )
  end

  path = "services/#{service_id}/users/#{user_id}/subscriptions"
  request = HttpRequest.new("POST", @base_url, path, subscription_data)
  @http_client.send(request)
end
delete_subscription(service_id, user_id, subscription_id) click to toggle source
# File lib/tacklebox/apis/subscription_api.rb, line 84
def delete_subscription(service_id, user_id, subscription_id)
  if !self.is_valid_id(service_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The delete_subscription method must be invoked with a non-empty string service_id argument."
    )
  end
  if !self.is_valid_id(user_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The delete_subscription method must be invoked with a non-empty string user_id argument."
    )
  end
  if !self.is_valid_id(subscription_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The delete_subscription method must be invoked with a non-empty string subscription_id argument."
    )
  end
  
  path = "services/#{service_id}/users/#{user_id}/subscriptions/#{subscription_id}"
  request = HttpRequest.new("DELETE", @base_url, path)
  @http_client.send(request)
end
get_subscription(service_id, user_id, subscription_id) click to toggle source
# File lib/tacklebox/apis/subscription_api.rb, line 59
def get_subscription(service_id, user_id, subscription_id)
  if !self.is_valid_id(service_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The get_subscription method must be invoked with a non-empty string service_id argument."
    )
  end
  if !self.is_valid_id(user_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The get_subscription method must be invoked with a non-empty string user_id argument."
    )
  end
  if !self.is_valid_id(subscription_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The get_subscription method must be invoked with a non-empty string subscription_id argument."
    )
  end
  
  path = "services/#{service_id}/users/#{user_id}/subscriptions/#{subscription_id}"
  request = HttpRequest.new("GET", @base_url, path)
  @http_client.send(request)
end
list_subscriptions(service_id, user_id) click to toggle source
# File lib/tacklebox/apis/subscription_api.rb, line 15
def list_subscriptions(service_id, user_id)
  if !self.is_valid_id(service_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The list_subscriptions method must be invoked with a non-empty string service_id argument."
    )
  end
  if !self.is_valid_id(user_id)
    return new_error(
      ERROR_TYPES['missing_parameter'],
      "The list_subscriptions method must be invoked with a non-empty string user_id argument."
    )
  end

  path = "services/#{service_id}/users/#{user_id}/subscriptions"
  request = HttpRequest.new("GET", @base_url, path)
  @http_client.send(request)
end