lib/mws/reports.rb in peddler-0.8.0 vs lib/mws/reports.rb in peddler-0.9.0

- old
+ new

@@ -1,220 +2 @@ -require 'peddler/client' - -module MWS - # The Reports API lets you request reports about your inventory and orders. - class Reports < ::Peddler::Client - # Creates a report request - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_RequestReport.html - # @param report_type [String] - # @param opts [Hash] - # @option opts [String, #iso8601] :start_date - # @option opts [String, #iso8601] :end_date - # @option opts [String] :report_options - # @option opts [Array<String>, String] :marketplace_id - # @return [Peddler::XMLParser] - def request_report(report_type, opts = {}) - operation('RequestReport') - .add(opts.merge('ReportType' => report_type)) - .structure!('MarketplaceIdList', 'Id') - - run - end - - # Lists report requests - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportRequestList.html - # @param opts [Hash] - # @option opts [Array<String>, String] :report_request_id_list - # @option opts [Array<String>, String] :report_type_list - # @option opts [Array<String>, String] :report_processing_status_list - # @option opts [Integer] :max_count - # @option opts [String, #iso8601] :requested_from_date - # @option opts [String, #iso8601] :requested_to_date - # @return [Peddler::XMLParser] - def get_report_request_list(opts = {}) - operation('GetReportRequestList') - .add(opts) - .structure!('ReportRequestIdList', 'Id') - .structure!('ReportTypeList', 'Type') - .structure!('ReportProcessingStatusList', 'Status') - - run - end - - # Lists the next page of the report requests - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportRequestListByNextToken.html - # @param next_token [String] - # @return [Peddler::XMLParser] - def get_report_request_list_by_next_token(next_token) - operation('GetReportRequestListByNextToken') - .add('NextToken' => next_token) - - run - end - - # Counts requested reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportRequestCount.html - # @param opts [Hash] - # @option opts [Array<String>, String] :report_type_list - # @option opts [Array<String>, String] :report_processing_status_list - # @option opts [String, #iso8601] :requested_from_date - # @option opts [String, #iso8601] :requested_to_date - # @return [Peddler::XMLParser] - def get_report_request_count(opts = {}) - operation('GetReportRequestCount') - .add(opts) - .structure!('ReportTypeList', 'Type') - .structure!('ReportProcessingStatusList', 'Status') - - run - end - - # Cancels one or more report requests - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_CancelReportRequests.html - # @param opts [Hash] - # @option opts [Array<String>, String] :report_type_list - # @option opts [Array<String>, String] :report_processing_status_list - # @option opts [String, #iso8601] :requested_from_date - # @option opts [String, #iso8601] :requested_to_date - # @return [Peddler::XMLParser] - def cancel_report_requests(opts = {}) - operation('CancelReportRequests') - .add(opts) - .structure!('ReportTypeList', 'Type') - .structure!('ReportProcessingStatusList', 'Status') - - run - end - - # Lists reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportList.html - # @param opts [Hash] - # @option opts [Integer] :max_count - # @option opts [Array<String>, String] :report_type_list - # @option opts [Boolean] :acknowledged - # @option opts [String, #iso8601] :available_from_date - # @option opts [String, #iso8601] :available_to_date - # @option opts [Array<String>, String] :report_request_id_list - # @return [Peddler::XMLParser] - def get_report_list(opts = {}) - operation('GetReportList') - .add(opts) - .structure!('ReportTypeList', 'Type') - .structure!('ReportRequestIdList', 'Id') - - run - end - - # Lists the next page of reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportListByNextToken.html - # @param next_token [String] - # @return [Peddler::XMLParser] - def get_report_list_by_next_token(next_token) - operation('GetReportListByNextToken') - .add('NextToken' => next_token) - - run - end - - # Counts reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportCount.html - # @param opts [Hash] - # @option opts [Array<String>, String] :report_type_list - # @option opts [Boolean] :acknowledged - # @option opts [String, #iso8601] :available_from_date - # @option opts [String, #iso8601] :available_to_date - # @return [Peddler::XMLParser] - def get_report_count(opts = {}) - operation('GetReportCount') - .add(opts) - .structure!('ReportTypeList', 'Type') - - run - end - - # Gets a report and its Content-MD5 header - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReport.html - # @param report_id [String] - # @return [Peddler::XMLParser] if report is in XML format - # @return [Peddler::CSVParser] if report is a flat file - def get_report(report_id, &blk) - operation('GetReport') - .add('ReportId' => report_id) - - run(&blk) - end - - - # Creates, updates, or deletes a report request schedule - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_ManageReportSchedule.html - # @param report_type [String] - # @param schedule [String] - # @param opts [Hash] - # @option opts [String, #iso8601] :schedule_date - # @return [Peddler::XMLParser] - def manage_report_schedule(report_type, schedule, opts = {}) - operation('ManageReportSchedule') - .add(opts.merge('ReportType' => report_type, 'Schedule' => schedule)) - - run - end - - # List scheduled reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportScheduleList.html - # @param report_type_list [*Array<String>] - # @return [Peddler::XMLParser] - def get_report_schedule_list(*report_type_list) - operation('GetReportScheduleList') - .add('ReportTypeList' => report_type_list) - .structure!('ReportTypeList', 'Type') - - run - end - - # List next page of scheduled reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportScheduleListByNextToken.html - # @param next_token [String] - # @raise [NotImplementedError] - def get_report_schedule_list_by_next_token(next_token) - raise NotImplementedError - end - - # Count scheduled reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportScheduleCount.html - # @param report_type_list [Array<String>] - # @return [Peddler::XMLParser] - def get_report_schedule_count(*report_type_list) - operation('GetReportScheduleCount') - .add('ReportTypeList' => report_type_list) - .structure!('ReportTypeList', 'Type') - - run - end - - # Update acknowledged status of one or more reports - # - # @see http://docs.developer.amazonservices.com/en_US/reports/Reports_UpdateReportAcknowledgements.html - # @param acknowledged [Boolean] - # @param report_id_list [Array<String>] - # @return [Peddler::XMLParser] - def update_report_acknowledgements(acknowledged, *report_id_list) - operation('UpdateReportAcknowledgement') - .add('ReportIdList' => report_id_list, 'Acknowledged' => acknowledged) - .structure!('ReportIdList', 'Id') - - run - end - end -end +require 'mws/reports/client'