Class: ImobisCore
- Inherits:
-
Object
- Object
- ImobisCore
- Defined in:
- lib/imobis_api/imobis_core.rb
Instance Method Summary collapse
- #Get(url) ⇒ Object
- #Post(url, param) ⇒ Object
- #ReadXml(xmlStr, type) ⇒ Object
- #WriteXML(user, pass, type, data) ⇒ Object
Instance Method Details
#Get(url) ⇒ Object
134 135 136 137 138 139 |
# File 'lib/imobis_api/imobis_core.rb', line 134 def Get(url) uri = URI(url) response = Net::HTTP.get_response(uri) content = response.body if response.is_a?(Net::HTTPSuccess) return content end |
#Post(url, param) ⇒ Object
126 127 128 129 130 131 132 |
# File 'lib/imobis_api/imobis_core.rb', line 126 def Post(url,param) uri = URI.parse(url) response = Net::HTTP.post_form(uri, param) content = response.body puts "RAW response:\n" + content if $DEBUG return content end |
#ReadXml(xmlStr, type) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/imobis_api/imobis_core.rb', line 9 def ReadXml(xmlStr, type) result = Hash.new doc = Document.new xmlStr case type when "send" result["status"] = doc.root.elements["status"].text result["credits"] = doc.root.elements["credits"].text when "report" if doc.elements["DevileryReport"].text != "noValidIds" then doc.elements.each("DeliveryReport/message") do |element| res = hash.new res["id"] = element.elements["id"].text res["uid"] = element.elements["uid"].text res["sentdate"] = element.elements["sentdate"].text res["donedate"] = element.elements["donedate"].text res["status"] = element.elements["status"].text result["id"] = res end else result["error"] = "noVaildIds" end when "check" doc.elements.each("RESPONSE/gsm") do |num| if num.text != "noBindingDetected" and num.text != "invalidPhoneNumber" then res = Hash.new res["region"] = num.elements["region"].text res["operator"] = num.elements["operator"].text res["issuedate"] = num.elements["issuedate"].text result[num.attributes["phone"]] = res else result[num.attributes["phone"]] = num.text end end when "stats" doc.elements.each("RESPONSE/gsm") do |num| res = Hash.new res["status"] = num.elements["status"].text res["sent"] = num.elements["sent"].text res["updated"] = num.elements["updated"].text res["sender"] = num.elements["sender"].text res["text"] = num.elements["text"].text res["count"] = num.elements["count"].text res["country"] = num.elements["country"].text res["price"] = num.elements["price"].text result[num.attributes["phone"]] = res end when "sender" i = 0 doc.elements.each("RESPONSE/sender") do |sender| i = i+1; result[i] = sender.text end end return result end |
#WriteXML(user, pass, type, data) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/imobis_api/imobis_core.rb', line 66 def WriteXML(user,pass,type,data) #type = send) #data = [ text = ["message_text","message_sender"], num_list = [num = [numbers,,,], *id=[,,] ]] #type = report #data = [ id1 = [ id, "externalId"], id2 = [ id, "internalId" ],,,] #type = check #data = [num1, num2, ,,, numN] #Create XML Add root node (SMS) and and Auth node doc = Document.new root_node = doc.add_element("SMS") auth_node = root_node.add_element("authentification") user_node = auth_node.add_element("username") pass_node = auth_node.add_element("password") user_node.add_text(REXML::CData.new(user)) pass_node.add_text(REXML::CData.new(pass)) #Select request type and gen XML case type when "send" #Add message node = root_node.add_element("message") sender_node = .add_element("sender") sender_node.add_text(REXML::CData.new(URI.encode(data[0][0]))) text_node = .add_element("text") text_node.add_text(REXML::CData.new(URI.encode(data[0][1]))) #Add recipients node recip_node = root_node.add_element("recipients") data[1].each do |num| gsm_node = recip_node.add_element("gsm") gsm_node.add_text(num[0]) #Add atributes messageId if needed gsm_node.add_attribute("messageId", num.fetch(1,"")) end when "report" #Add messageid list = root_node.add_element("messadeIds") data.each do |id| id_node = .add_element(id[0]) id_node.add_text(id[1]) end when "check" #Add list of phone numbers check_node = root_node.add_element("checkgsm") data.each do |num| num_node = check_node.add_element("gsm") num_node.add_text(num) end when "stats" stats_node = root_node.add_element("checkphone") stats_node.add_attribute("mode","xml") stats_node.add_attribute("limit", "1000") data.each do |num| num_node = stats_node.add_element("gsm") num_node.add_text(num) end end doc.write(xml_string = "", -1) puts "XML:\n" + xml_string if $DEBUG return xml_string end |