lib/mws/subscriptions.rb in peddler-0.8.0 vs lib/mws/subscriptions.rb in peddler-0.9.0
- old
+ new
@@ -1,169 +2 @@
-require 'peddler/client'
-
-module MWS
- # The Amazon MWS Subscriptions API section enables you to subscribe to
- # receive notifications that are relevant to your business with Amazon. With
- # the operations in the Subscriptions API section, you can register to
- # receive important information from Amazon without having to poll the
- # Amazon MWS service. Instead, the information is sent directly to you when
- # an event occurs to which you are subscribed.
- class Subscriptions < ::Peddler::Client
- path '/Subscriptions/2013-07-01'
-
- # Registers a new destination to receive notifications
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_RegisterDestination.html
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def register_destination(sqs_queue_url, marketplace_id = marketplace_id)
- operation('RegisterDestination')
- .add('MarketplaceId' => marketplace_id)
- .add(build_destination(sqs_queue_url))
-
- run
- end
-
- # Removes an existing destination from the list of registered destinations
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_DeregisterDestination.html
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def deregister_destination(sqs_queue_url, marketplace_id = marketplace_id)
- operation('DeregisterDestination')
- .add('MarketplaceId' => marketplace_id)
- .add(build_destination(sqs_queue_url))
-
- run
- end
-
- # Lists all registered destinations
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_ListRegisteredDestinations.html
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def list_registered_destinations( marketplace_id = marketplace_id)
- operation('ListRegisteredDestinations')
- .add('MarketplaceId' => marketplace_id)
-
- run
- end
-
- # Sends a test notification to an existing destination
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_SendTestNotificationToDestination.html
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def send_test_notification_to_destination(sqs_queue_url, marketplace_id = marketplace_id)
- operation('SendTestNotificationToDestination')
- .add('MarketplaceId' => marketplace_id)
- .add(build_destination(sqs_queue_url))
-
- run
- end
-
- # Creates a new subscription
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_CreateSubscription.html
- # @param notification_type [String]
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def create_subscription(notification_type, sqs_queue_url, marketplace_id = marketplace_id)
- operation('CreateSubscription')
- .add('MarketplaceId' => marketplace_id)
- .add(build_subscription(notification_type, sqs_queue_url))
-
- run
- end
-
- # Gets a subscription
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_GetSubscription.html
- # @param notification_type [String]
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def get_subscription(notification_type, sqs_queue_url, marketplace_id = marketplace_id)
- operation('GetSubscription')
- .add('MarketplaceId' => marketplace_id, 'NotificationType' => notification_type)
- .add(build_destination(sqs_queue_url))
-
- run
- end
-
- # Deletes a subscription
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_DeleteSubscription.html
- # @param notification_type [String]
- # @param sqs_queue_url [String]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def delete_subscription(notification_type, sqs_queue_url, marketplace_id = marketplace_id)
- operation('DeleteSubscription')
- .add('MarketplaceId' => marketplace_id, 'NotificationType' => notification_type)
- .add(build_destination(sqs_queue_url))
-
- run
- end
-
- # Lists current subscriptions
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_ListSubscriptions.html
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def list_subscriptions(marketplace_id = marketplace_id)
- operation('ListSubscriptions')
- .add('MarketplaceId' => marketplace_id)
-
- run
- end
-
- # Updates a subscription
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_UpdateSubscription.html
- # @param notification_type [String]
- # @param sqs_queue_url [String]
- # @param enabled [Boolean]
- # @param marketplace_id [String]
- # @return [Peddler::XMLParser]
- def update_subscription(notification_type, sqs_queue_url, enabled, marketplace_id = marketplace_id)
- operation('CreateSubscription')
- .add('MarketplaceId' => marketplace_id)
- .add(build_subscription(notification_type, sqs_queue_url, enabled))
-
- run
- end
-
- # Gets the service status of the API
- #
- # @see http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_GetServiceStatus.html
- # @return [Peddler::XMLParser]
- def get_service_status
- operation('GetServiceStatus')
- run
- end
-
- private
-
- def build_destination(sqs_queue_url)
- {
- 'Destination.DeliveryChannel' => 'SQS',
- 'Destination.AttributeList.member.1.Key' => 'sqsQueueUrl',
- 'Destination.AttributeList.member.1.Value' => sqs_queue_url
- }
- end
-
- def build_subscription(notification_type, sqs_queue_url, enabled = true)
- {
- 'Subscription.IsEnabled' => enabled,
- 'Subscription.NotificationType' => notification_type,
- 'Subscription.Destination.DeliveryChannel' => 'SQS',
- 'Subscription.Destination.AttributeList.member.1.Key' => 'sqsQueueUrl',
- 'Subscription.Destination.AttributeList.member.1.Value' => sqs_queue_url
- }
- end
- end
-end
+require 'mws/subscriptions/client'