class MessagebusReportsClient
Constants
- FORMAT_CSV
- FORMAT_JSON
- REPORT_TYPE_BLOCKLIST
- REPORT_TYPE_FEEDBACK
- REPORT_TYPE_STATS
- SCOPE_BLOCKS
- SCOPE_BOUNCES
- SCOPE_CLICKS
- SCOPE_COMPLAINTS
- SCOPE_OPENS
- SCOPE_UNSUBSCRIBES
- STATUS_DONE
- STATUS_FAILED
- STATUS_NODATA
- STATUS_RUNNING
Public Class Methods
new(api_key, api_endpoint = DEFAULT_API_ENDPOINT)
click to toggle source
Calls superclass method
MessagebusSDK::MessagebusBase::new
# File lib/messagebus-sdk/reports_client.rb, line 37 def initialize(api_key, api_endpoint = DEFAULT_API_ENDPOINT) super(api_key, api_endpoint) @rest_endpoints = define_rest_endpoints end
Public Instance Methods
create_blocklist_report(start_date, end_date, scope = 'blocks', format = 'json', channel_key = '', session_key = '')
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 99 def create_blocklist_report(start_date, end_date, scope = 'blocks', format = 'json', channel_key = '', session_key = '') create_report(REPORT_TYPE_BLOCKLIST, start_date, end_date, scope, format, channel_key, session_key) end
create_feedback_report(start_date, end_date, scope = 'bounces', format = 'json', channel_key = '', session_key = '', use_send_time = true)
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 91 def create_feedback_report(start_date, end_date, scope = 'bounces', format = 'json', channel_key = '', session_key = '', use_send_time = true) create_report(REPORT_TYPE_FEEDBACK, start_date, end_date, scope, format, channel_key, session_key, use_send_time) end
create_report(report_type, start_date, end_date, scope = nil, format = 'json', channel_key = '', session_key = '', use_send_time = true)
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 71 def create_report(report_type, start_date, end_date, scope = nil, format = 'json', channel_key = '', session_key = '', use_send_time = true) path = @rest_endpoints[:reports] days = 1 end_date = set_date(end_date, 0) start_date = set_date(start_date, days) post_data = {:reportType => report_type, :format => format, :startDate => start_date, :endDate => end_date, :channelKey => channel_key, :sessionKey => session_key } post_data[:scope] = scope if (report_type == REPORT_TYPE_FEEDBACK || report_type == REPORT_TYPE_BLOCKLIST) post_data[:useSendTime] = use_send_time if report_type == REPORT_TYPE_FEEDBACK make_api_request(path, HTTP_POST, post_data.to_json) end
create_stats_report(start_date, end_date, format = 'json', channel_key = '', session_key = '')
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 95 def create_stats_report(start_date, end_date, format = 'json', channel_key = '', session_key = '') create_report(REPORT_TYPE_STATS, start_date, end_date, nil, format, channel_key, session_key) end
report(report_key, file_name = '', sleep_interval = 5)
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 52 def report(report_key, file_name = '', sleep_interval = 5) report_data = '' check_report_status = true while check_report_status response = report_status(report_key) case response[:reportStatus] when STATUS_DONE report_data = report_data(report_key, file_name) check_report_status = false when STATUS_NODATA, STATUS_FAILED report_data = '' check_report_status = false else sleep(sleep_interval) end end return report_data end
report_data(report_key, file_name = '')
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 47 def report_data(report_key, file_name = '') path = replace_report_key("#{@rest_endpoints[:report]}", report_key) make_api_request(path, HTTP_GET, '', false, file_name) end
report_status(report_key)
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 42 def report_status(report_key) path = replace_report_key("#{@rest_endpoints[:status]}", report_key) make_api_request(path) end
Private Instance Methods
define_rest_endpoints()
click to toggle source
# File lib/messagebus-sdk/reports_client.rb, line 105 def define_rest_endpoints { :reports => "/v5/reports", :report => "/v5/report/%REPORT_KEY%", :status => "/v5/report/%REPORT_KEY%/status" } end