iletimerkezisms 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: baf78905223a49ba069684947da9beef86322d09
4
+ data.tar.gz: bcbc504cb51821f3ebd76bd0e38c8908fd791ca8
5
+ SHA512:
6
+ metadata.gz: 1048871e45b4377b41f2d15fe1d870b74392c35021d2b92438e90e8c1a93ef0f8eaec17924859a7d6442da85697b57004348875e37defe67d5abc842ae7a96ed
7
+ data.tar.gz: af6c012c411b971ae0788740a9dfeadcb573252649118cdda9907e875eef4d945f9eaee267fe8178791343eb7caabe6e326f6d8c76a47d1d6fb5a4cc519f1752
@@ -0,0 +1,43 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path('../iletimerkezisms/sms', __FILE__)
4
+ require File.expand_path('../iletimerkezisms/report', __FILE__)
5
+ require File.expand_path('../iletimerkezisms/request', __FILE__)
6
+
7
+ module IletimerkeziSMS
8
+ # argv: {sender: "ILETI MRKZI", message: "Lorem Ipsum ...",
9
+ # numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx", "5xxxxxxxxx"]
10
+ # }
11
+ def self.send(username, password, argv)
12
+ sms = SMS.new(username, password)
13
+ sms.send(argv)
14
+ end
15
+
16
+ # argv: {sender: "ILETI MRKZI",
17
+ # messages: [
18
+ # {text: "Message_one", numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx", "5xxxxxxxxx"]},
19
+ # {text: "Message_two", numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx"]},
20
+ # {text: "Message_there", numbers: ["905xxxxxxxxx"]}
21
+ # ]
22
+ # }
23
+ def self.multi_send(username, password, argv)
24
+ sms = SMS.new(username, password)
25
+ sms.multi_send(argv)
26
+ end
27
+
28
+ def self.cancel(username, password, order_id)
29
+ sms = SMS.new(username, password)
30
+ sms.cancel(order_id)
31
+ end
32
+
33
+ def self.balance(username, password)
34
+ sms = REPORT.new(username, password)
35
+ sms.balance
36
+ end
37
+
38
+ # argv:
39
+ def self.report(username, password, argv)
40
+ sms = REPORT.new(username, password)
41
+ sms.report(argv)
42
+ end
43
+ end
@@ -0,0 +1,52 @@
1
+ # encoding: utf-8
2
+
3
+ require "iletimerkezisms/request"
4
+ require 'nokogiri'
5
+
6
+ module IletimerkeziSMS
7
+ class REPORT
8
+ def initialize(username, password)
9
+ @username = username
10
+ @password = password
11
+ end
12
+
13
+ def report(argv)
14
+ argv = {
15
+ page: 1,
16
+ rowCount: 1000
17
+ }.merge(argv)
18
+
19
+ path = "get-report"
20
+
21
+ xml_build = Nokogiri::XML::Builder.new do |xml|
22
+ xml.request {
23
+ xml.authentication {
24
+ xml.username @username
25
+ xml.password @password
26
+ }
27
+ xml.order{
28
+ xml.id_ argv[:id]
29
+ xml.page argv[:page]
30
+ xml.rowCount argv[:rowCount]
31
+ }
32
+ }
33
+ end
34
+ r = REQUEST.new(path,xml_build.to_xml)
35
+ return r.request
36
+ end
37
+
38
+ def balance
39
+ path = "get-balance"
40
+ xml_build = Nokogiri::XML::Builder.new do |xml|
41
+ xml.request {
42
+ xml.authentication {
43
+ xml.username @username
44
+ xml.password @password
45
+ }
46
+ }
47
+ end
48
+ r = REQUEST.new(path,xml_build.to_xml)
49
+ return r.request
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rest-client'
4
+ require 'crack/xml'
5
+
6
+ module IletimerkeziSMS
7
+ class REQUEST
8
+ def initialize(path, params)
9
+ @params = params
10
+ @api_base_url = "http://api.iletimerkezi.com/v1/#{path}"
11
+ end
12
+
13
+ def request
14
+ begin
15
+ resource = RestClient::Resource.new(@api_base_url, timeout: 30, open_timeout: 30)
16
+ response = resource.post @params, content_type: :xml, accept: :xml
17
+ rescue RestClient::ExceptionWithResponse => err
18
+ response = err.response
19
+ end
20
+ return Crack::XML.parse(response.body)["response"]
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,100 @@
1
+ # encoding: utf-8
2
+
3
+ require 'nokogiri'
4
+ require "iletimerkezisms/request"
5
+
6
+ module IletimerkeziSMS
7
+ class SMS
8
+ def initialize(username, password)
9
+ @username = username
10
+ @password = password
11
+ end
12
+
13
+ # Usage: sms = IletimerkeziSMS::SMS.new("5545967632","5173539")
14
+ # sms.send({sender: "ILETI MRKZI", message: "Lorem Ipsum ...",
15
+ # numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx", "5xxxxxxxxx"]})
16
+ # Description: Single Message => Multi Number
17
+ def send(argv)
18
+ path = "send-sms"
19
+ xml_build = Nokogiri::XML::Builder.new do |xlm|
20
+ xlm.request {
21
+ xlm.authentication {
22
+ xlm.username @username
23
+ xlm.password @password
24
+ }
25
+ xlm.order {
26
+ xlm.sender argv[:sender]
27
+ xlm.sendDateTime Time.now.strftime("%d/%m/%Y %H:%M")
28
+ xlm.message {
29
+ xlm.text_ argv[:message]
30
+ xlm.receipents{
31
+ argv[:numbers].each do |n|
32
+ xlm.number n
33
+ end
34
+ }
35
+ }
36
+ }
37
+ }
38
+ end
39
+ r = REQUEST.new(path,xml_build.to_xml)
40
+ return r.request
41
+ end
42
+
43
+ # Usage: sms = IletimerkeziSMS::SMS.new("5545967632","5173539")
44
+ # sms.send({sender: "ILETI MRKZI",
45
+ # messages: [
46
+ # {text: "Message_one", numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx", "5xxxxxxxxx"]},
47
+ # {text: "Message_two", numbers: ["905xxxxxxxxx"," +90 5xx xxx xx xx"]},
48
+ # {text: "Message_there", numbers: ["905xxxxxxxxx"]}
49
+ # ]
50
+ # })
51
+ # Description: Multi Message => Multi Number (Birden fazla farklı mesajı birden fazla farklı kişiye göndermeye yarar.)
52
+ def multi_send(argv)
53
+ path = "send-sms"
54
+ xml_build = Nokogiri::XML::Builder.new do |xlm|
55
+ xlm.request {
56
+ xlm.authentication {
57
+ xlm.username @username
58
+ xlm.password @password
59
+ }
60
+ xlm.order {
61
+ xlm.sender argv[:sender]
62
+ xlm.sendDateTime Time.now.strftime("%d/%m/%Y %H:%M")
63
+ argv[:messages].each do |message|
64
+ xlm.message {
65
+ xlm.text_ message[:text]
66
+ xlm.receipents{
67
+ message[:numbers].each do |n|
68
+ xlm.number n
69
+ end
70
+ }
71
+ }
72
+ end
73
+ }
74
+ }
75
+ end
76
+ r = REQUEST.new(path,xml_build.to_xml)
77
+ return r.request
78
+ end
79
+
80
+ # Usage: sms = IletimerkeziSMS::SMS.new("5545967632","5173539")
81
+ # sms.cancel("4152")
82
+ # Description: Gönderilen sms paketini iptal etmeye yarar.
83
+ def cancel(order_id)
84
+ path = "cancel-order"
85
+ xml_build = Nokogiri::XML::Builder.new do |xlm|
86
+ xlm.request {
87
+ xlm.authentication {
88
+ xlm.username @username
89
+ xlm.password @password
90
+ }
91
+ xlm.order {
92
+ xlm.id_ order_id.to_s
93
+ }
94
+ }
95
+ end
96
+ r = REQUEST.new(path,xml_build.to_xml)
97
+ return r.request
98
+ end
99
+ end
100
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iletimerkezisms
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Irfan SUBAS
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: crack
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: api.iletimerkezi.com uzerinden toplu sms gonderme, raporlama gibi islemleri
56
+ yapabilmek icin hazırlanmistir
57
+ email: irfansubas08@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/iletimerkezisms.rb
63
+ - lib/iletimerkezisms/report.rb
64
+ - lib/iletimerkezisms/request.rb
65
+ - lib/iletimerkezisms/sms.rb
66
+ homepage: https://github.com/irfansubas/iletimerkezisms
67
+ licenses:
68
+ - MIT
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubyforge_project:
86
+ rubygems_version: 2.4.5
87
+ signing_key:
88
+ specification_version: 4
89
+ summary: api.iletimerkezi.com API Ruby SMS GEM
90
+ test_files: []