class TempMailRu::Api
Attributes
email[RW]
Public Class Methods
new(email = nil, protocol = "http")
click to toggle source
# File lib/tempmailru/api.rb, line 9 def initialize(email = nil, protocol = "http") @protocol = protocol @url = "#{protocol}://#{TempMailRu::HOST}" @email = email end
Public Instance Methods
delete()
click to toggle source
# File lib/tempmailru/api.rb, line 64 def delete hash = Digest::MD5.hexdigest(@email) send_request("request/delete/id/#{hash}")[:data] end
domains()
click to toggle source
# File lib/tempmailru/api.rb, line 42 def domains send_request("request/domains")[:data] end
inbox()
click to toggle source
# File lib/tempmailru/api.rb, line 54 def inbox hash = Digest::MD5.hexdigest(@email) send_request("request/mail/id/#{hash}")[:data] end
source()
click to toggle source
# File lib/tempmailru/api.rb, line 59 def source hash = Digest::MD5.hexdigest(@email) send_request("request/source/id/#{hash}")[:data] end
Protected Instance Methods
handle_result(data)
click to toggle source
# File lib/tempmailru/api.rb, line 46 def handle_result(data) unless data[:http_code].to_i == 200 data[:is_error] = true end data end
send_request(path)
click to toggle source
# File lib/tempmailru/api.rb, line 15 def send_request(path) begin request_data = {} uri = URI.parse("#{@url}/#{path}/format/json") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if @protocol == 'https' request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) if response.code.to_i == 401 return send_request(path) else request_data[:data] = JSON.parse(response.body, symbolize_names: true) request_data[:http_code] = response.code end rescue Exception => e raise "Exception \n message: #{e.message} \n backtrace: #{e.backtrace}" end handle_result(request_data) end