lib/globalsms/report.rb in globalsms-0.3.1 vs lib/globalsms/report.rb in globalsms-0.4.0

- old
+ new

@@ -1,59 +1,37 @@ -require "globalsms/version" -require 'httpclient' -require 'json' - module GlobalSMS class REPORT def initialize(api_key, api_secret) - @api_base_url = "http://api.globalhaberlesme.com" @api_key = api_key @api_secret = api_secret end - def single_report(argv) - uri = "#{@api_base_url}/sms/report/#{argv}?key=#{@api_key}&secret=#{@api_secret}" - c = HTTPClient.new - return JSON.parse(c.get(uri).body) + def message(message_id) + uri = "/sms/report/#{message_id}?key=#{@api_key}&secret=#{@api_secret}" + get_to_api(uri) end - def bulk_report(argv) - res = {} - argv.each do |message_id| - body = JSON.parse(HTTPClient.new.get("#{@api_base_url}/sms/report/#{message_id}?key=#{@api_key}&secret=#{@api_secret}").body) - res[message_id] = body - end - return res + def last_n(limit=1) + uri = "/sms/report/sent?limit=#{limit}&key=#{@api_key}&secret=#{@api_secret}" + get_to_api(uri) end - def report_last(argv=1) - uri = "#{@api_base_url}/sms/report/sent?limit=#{argv}&key=#{@api_key}&secret=#{@api_secret}" - c = HTTPClient.new - return JSON.parse(c.get(uri).body) - end - - def report_between(argv) + def between(argv) argv = { - start_time: "00:00:00", - end_time: "23:59:59" + start_time: '00:00:00', + end_time: '23:59:59' }.merge(argv) - uri_with_whitespace = "#{@api_base_url}/sms/report/sent?between_start=#{argv[:start_date]} #{argv[:start_time]}&between_end=#{argv[:end_date]} #{argv[:end_time]}&key=#{@api_key}&secret=#{@api_secret}" - uri = URI.parse(URI.encode(uri_with_whitespace.strip)) + uri = "/sms/report/sent?between_start=#{argv[:start_date]} #{argv[:start_time]}&between_end=#{argv[:end_date]} #{argv[:end_time]}&key=#{@api_key}&secret=#{@api_secret}" + safe_uri = URI.parse(URI.encode(uri)) + get_to_api(safe_uri) + end - c = HTTPClient.new - return JSON.parse(c.get(uri).body) + private + + def get_to_api(uri) + client = HTTPClient.new + response = client.get("#{API_BASE_URL}#{uri}") + JSON.parse(response.body) end - - def originator_list - uri = "#{@api_base_url}/originator/list?key=#{@api_key}&secret=#{@api_secret}" - c = HTTPClient.new - return JSON.parse(c.get(uri).body) - end - - def user_info - uri = "#{@api_base_url}/user/info?key=#{@api_key}&secret=#{@api_secret}" - c = HTTPClient.new - return JSON.parse(c.get(uri).body) - end end -end \ No newline at end of file +end