sms77 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +6 -4
- data/.idea/.gitignore +8 -0
- data/.idea/inspectionProfiles/Project_Default.xml +6 -0
- data/.idea/modules.xml +8 -0
- data/.idea/ruby-client.iml +18 -0
- data/.idea/vcs.xml +6 -0
- data/Gemfile +2 -2
- data/LICENSE +20 -20
- data/README.md +41 -35
- data/Rakefile +5 -5
- data/doc/Sms77/Client.html +230 -0
- data/doc/Sms77/Contacts/Action.html +131 -0
- data/doc/Sms77/Contacts.html +126 -0
- data/doc/Sms77/Endpoint.html +187 -0
- data/doc/Sms77/Hooks/Action.html +131 -0
- data/doc/Sms77/Hooks/EventType.html +146 -0
- data/doc/Sms77/Hooks/RequestMethod.html +131 -0
- data/doc/Sms77/Hooks/Validator.html +598 -0
- data/doc/Sms77/Hooks.html +126 -0
- data/doc/Sms77/Journal/Type.html +136 -0
- data/doc/Sms77/Journal/Validator.html +394 -0
- data/doc/Sms77/Journal.html +126 -0
- data/doc/Sms77/Lookup/Type.html +136 -0
- data/doc/Sms77/Lookup.html +126 -0
- data/doc/Sms77/Resource.html +870 -0
- data/doc/Sms77/Resources/Analytics.html +263 -0
- data/doc/Sms77/Resources/Balance.html +246 -0
- data/doc/Sms77/Resources/Contacts.html +449 -0
- data/doc/Sms77/Resources/Hooks.html +457 -0
- data/doc/Sms77/Resources/Journal.html +261 -0
- data/doc/Sms77/Resources/Lookup.html +540 -0
- data/doc/Sms77/Resources/Pricing.html +263 -0
- data/doc/Sms77/Resources/Sms.html +261 -0
- data/doc/Sms77/Resources/Status.html +261 -0
- data/doc/Sms77/Resources/Subaccounts.html +651 -0
- data/doc/Sms77/Resources/ValidateForVoice.html +261 -0
- data/doc/Sms77/Resources/Voice.html +261 -0
- data/doc/Sms77/Resources.html +128 -0
- data/doc/Sms77/Sms/Type.html +126 -0
- data/doc/Sms77/Sms.html +126 -0
- data/doc/Sms77/Subaccounts/Action.html +141 -0
- data/doc/Sms77/Subaccounts/Validator.html +490 -0
- data/doc/Sms77/Subaccounts.html +126 -0
- data/doc/Sms77/Util.html +1033 -0
- data/doc/Sms77.html +146 -0
- data/doc/_index.html +444 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +497 -0
- data/doc/file.README.html +112 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +112 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +563 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/sms77/client.rb +30 -29
- data/lib/sms77/contacts.rb +10 -9
- data/lib/sms77/endpoint.rb +17 -15
- data/lib/sms77/hooks.rb +67 -64
- data/lib/sms77/journal.rb +39 -38
- data/lib/sms77/lookup.rb +11 -10
- data/lib/sms77/resource.rb +94 -93
- data/lib/sms77/resources/analytics.rb +21 -16
- data/lib/sms77/resources/balance.rb +19 -15
- data/lib/sms77/resources/contacts.rb +38 -25
- data/lib/sms77/resources/hooks.rb +40 -29
- data/lib/sms77/resources/journal.rb +20 -15
- data/lib/sms77/resources/lookup.rb +47 -29
- data/lib/sms77/resources/pricing.rb +20 -15
- data/lib/sms77/resources/sms.rb +20 -15
- data/lib/sms77/resources/status.rb +20 -15
- data/lib/sms77/resources/subaccounts.rb +66 -0
- data/lib/sms77/resources/validate_for_voice.rb +20 -15
- data/lib/sms77/resources/voice.rb +20 -15
- data/lib/sms77/sms.rb +9 -8
- data/lib/sms77/subaccounts.rb +55 -0
- data/lib/sms77/util.rb +68 -67
- data/lib/sms77/version.rb +5 -5
- data/lib/sms77.rb +6 -6
- data/release.sh +4 -7
- data/sms77.gemspec +21 -21
- data/spec/EnvKeyStore.rb +14 -14
- data/spec/matchers.rb +22 -22
- data/spec/sms77/balance_spec.rb +12 -12
- data/spec/sms77/client_spec.rb +15 -15
- data/spec/sms77/contacts_spec.rb +129 -116
- data/spec/sms77/hooks_spec.rb +108 -105
- data/spec/sms77/instance_spec.rb +22 -20
- data/spec/sms77/journal_spec.rb +86 -86
- data/spec/sms77/lookup_spec.rb +179 -179
- data/spec/sms77/pricing_spec.rb +76 -76
- data/spec/sms77/sms_spec.rb +103 -103
- data/spec/sms77/subaccounts_spec.rb +121 -0
- data/spec/sms77/validate_for_voice_spec.rb +19 -19
- data/spec/sms77/voice_spec.rb +51 -51
- data/spec/sms77_spec.rb +9 -7
- data/spec/spec_helper.rb +53 -53
- metadata +75 -17
data/lib/sms77/util.rb
CHANGED
@@ -1,68 +1,69 @@
|
|
1
|
-
require 'date'
|
2
|
-
|
3
|
-
module
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
# This module exposes general utilities used throughout the library.
|
4
|
+
module Sms77::Util
|
5
|
+
def self.to_numbered_bool(val)
|
6
|
+
if true == val
|
7
|
+
return 1
|
8
|
+
elsif false == val
|
9
|
+
return 0
|
10
|
+
end
|
11
|
+
|
12
|
+
return val
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.get_namespace_members_by_type(ns, type)
|
16
|
+
ns.constants.map(&ns.method(:const_get)).grep(type)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.get_namespace_classes(ns)
|
20
|
+
return self.get_namespace_members_by_type(ns, Class)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.get_module_constant_values(mod)
|
24
|
+
mod.constants(false).map &mod.method(:const_get)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.is_valid_url?(str)
|
28
|
+
str =~ URI::regexp
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.is_valid_datetime?(str)
|
32
|
+
begin
|
33
|
+
DateTime.parse(str)
|
34
|
+
true
|
35
|
+
rescue ArgumentError
|
36
|
+
false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.is_positive_integer?(val)
|
41
|
+
/\A\d+\z/.match?(val.to_s)
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.in_module_constants?(needle, mod)
|
45
|
+
get_module_constant_values(mod).include?(needle)
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.valid_float?(str)
|
49
|
+
!!Float(str) rescue false
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.numeric?(val)
|
53
|
+
return true if val.is_a?(Integer)
|
54
|
+
|
55
|
+
val.scan(/\D/).empty?
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.boolean?(val)
|
59
|
+
[true, false].include? val
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.nil_or_lengthy_string?(val)
|
63
|
+
val.nil? || (val.is_a?(String) && val.length)
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.lengthy_string?(val)
|
67
|
+
return val.is_a?(String) && !val.empty?
|
68
|
+
end
|
68
69
|
end
|
data/lib/sms77/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Sms77
|
4
|
-
VERSION = '0.
|
5
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Sms77
|
4
|
+
VERSION = '0.5.0'
|
5
|
+
end
|
data/lib/sms77.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'sms77/version'
|
4
|
-
|
5
|
-
module Sms77
|
6
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'sms77/version'
|
4
|
+
|
5
|
+
module Sms77
|
6
|
+
end
|
data/release.sh
CHANGED
data/sms77.gemspec
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
lib = File.expand_path('../lib', __FILE__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
|
4
|
-
require 'sms77/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.add_development_dependency 'bundler', '~> 2.1'
|
8
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
9
|
-
spec.add_development_dependency 'rspec', '~> 3.9'
|
10
|
-
spec.add_runtime_dependency 'faraday', '~> 1.1'
|
11
|
-
spec.author = '
|
12
|
-
spec.description = 'Send SMS &
|
13
|
-
spec.email = 'support@
|
14
|
-
spec.files = `git ls-files`.split("\n")
|
15
|
-
spec.homepage = 'https://github.com/
|
16
|
-
spec.license = 'MIT'
|
17
|
-
spec.name = 'sms77'
|
18
|
-
spec.required_ruby_version = '>= 2.6.0'
|
19
|
-
spec.summary = 'Official API Client for the
|
20
|
-
spec.test_files = Dir['spec/**/*']
|
21
|
-
spec.version = Sms77::VERSION
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require 'sms77/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
8
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
9
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
10
|
+
spec.add_runtime_dependency 'faraday', '~> 1.1'
|
11
|
+
spec.author = 'seven communications GmbH & Co. KG'
|
12
|
+
spec.description = 'Send SMS & text-to-speech messages via the seven SMS Gateway.'
|
13
|
+
spec.email = 'support@seven.io'
|
14
|
+
spec.files = `git ls-files`.split("\n")
|
15
|
+
spec.homepage = 'https://github.com/seven-io/ruby-client'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
spec.name = 'sms77'
|
18
|
+
spec.required_ruby_version = '>= 2.6.0'
|
19
|
+
spec.summary = 'Official API Client for the seven SMS Gateway'
|
20
|
+
spec.test_files = Dir['spec/**/*']
|
21
|
+
spec.version = Sms77::VERSION
|
22
22
|
end
|
data/spec/EnvKeyStore.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
class EnvKeyStore
|
2
|
-
def initialize(key)
|
3
|
-
@key = "SMS77_TEST_#{key}"
|
4
|
-
|
5
|
-
@store = ENV[@key]
|
6
|
-
end
|
7
|
-
|
8
|
-
def get(fallback = nil)
|
9
|
-
@store.nil? ? fallback : @store
|
10
|
-
end
|
11
|
-
|
12
|
-
def set(val, only_on_nil = false)
|
13
|
-
@store = val unless only_on_nil
|
14
|
-
end
|
1
|
+
class EnvKeyStore
|
2
|
+
def initialize(key)
|
3
|
+
@key = "SMS77_TEST_#{key}"
|
4
|
+
|
5
|
+
@store = ENV[@key]
|
6
|
+
end
|
7
|
+
|
8
|
+
def get(fallback = nil)
|
9
|
+
@store.nil? ? fallback : @store
|
10
|
+
end
|
11
|
+
|
12
|
+
def set(val, only_on_nil = false)
|
13
|
+
@store = val unless only_on_nil
|
14
|
+
end
|
15
15
|
end
|
data/spec/matchers.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
RSpec::Matchers.define :be_nil_or_lengthy_string do
|
2
|
-
match do |val|
|
3
|
-
Sms77::Util::nil_or_lengthy_string?(val)
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
7
|
-
RSpec::Matchers.define :be_boolean do
|
8
|
-
match do |val|
|
9
|
-
Sms77::Util::boolean?(val)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
RSpec::Matchers.define :be_numeric do
|
14
|
-
match do |val|
|
15
|
-
Sms77::Util::numeric?(val)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
RSpec::Matchers.define :be_lengthy_string do
|
20
|
-
match do |val|
|
21
|
-
Sms77::Util::lengthy_string?(val)
|
22
|
-
end
|
1
|
+
RSpec::Matchers.define :be_nil_or_lengthy_string do
|
2
|
+
match do |val|
|
3
|
+
Sms77::Util::nil_or_lengthy_string?(val)
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
RSpec::Matchers.define :be_boolean do
|
8
|
+
match do |val|
|
9
|
+
Sms77::Util::boolean?(val)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec::Matchers.define :be_numeric do
|
14
|
+
match do |val|
|
15
|
+
Sms77::Util::numeric?(val)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec::Matchers.define :be_lengthy_string do
|
20
|
+
match do |val|
|
21
|
+
Sms77::Util::lengthy_string?(val)
|
22
|
+
end
|
23
23
|
end
|
data/spec/sms77/balance_spec.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'sms77/resources/balance'
|
5
|
-
|
6
|
-
RSpec.describe Sms77, 'balance' do
|
7
|
-
it 'returns the account balance' do
|
8
|
-
helper = Helper.new(Sms77::Resources::Balance)
|
9
|
-
balance = helper.request(helper.resource.method(:retrieve), 155.55)
|
10
|
-
expect(balance).to be_a(Float)
|
11
|
-
end
|
12
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'sms77/resources/balance'
|
5
|
+
|
6
|
+
RSpec.describe Sms77, 'balance' do
|
7
|
+
it 'returns the account balance' do
|
8
|
+
helper = Helper.new(Sms77::Resources::Balance)
|
9
|
+
balance = helper.request(helper.resource.method(:retrieve), 155.55)
|
10
|
+
expect(balance).to be_a(Float)
|
11
|
+
end
|
12
|
+
end
|
data/spec/sms77/client_spec.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require '
|
4
|
-
require 'sms77/
|
5
|
-
require '
|
6
|
-
|
7
|
-
RSpec.describe Sms77, 'client' do
|
8
|
-
it 'should contain all resource modules' do
|
9
|
-
client = Sms77::Client.new(Sms77::Resource.new('x'))
|
10
|
-
|
11
|
-
client.instance_variables.each do |var|
|
12
|
-
expect(Sms77::Resources.const_get(client.instance_variable_get(var).class.name)).to be_truthy
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'sms77/client'
|
5
|
+
require 'sms77/resource'
|
6
|
+
|
7
|
+
RSpec.describe Sms77, 'client' do
|
8
|
+
it 'should contain all resource modules' do
|
9
|
+
client = Sms77::Client.new(Sms77::Resource.new('x'))
|
10
|
+
|
11
|
+
client.instance_variables.each do |var|
|
12
|
+
expect(Sms77::Resources.const_get(client.instance_variable_get(var).class.name)).to be_truthy
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/sms77/contacts_spec.rb
CHANGED
@@ -1,116 +1,129 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'sms77/contacts'
|
5
|
-
require 'sms77/resources/contacts'
|
6
|
-
|
7
|
-
RSpec.describe Sms77, 'contacts' do
|
8
|
-
$new_contact_id = nil
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
expect(
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
expect(
|
38
|
-
expect(
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
50
|
-
"
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
body =
|
55
|
-
|
56
|
-
expect(body).to be_a(String)
|
57
|
-
|
58
|
-
body.split("\n").each do |contact|
|
59
|
-
assert_contact(contact)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'returns all contacts as JSON' do
|
64
|
-
stub = [
|
65
|
-
{ ID: '4848436', Name: '', Number: '' },
|
66
|
-
{ ID: '4848437', Name: '', Number: '' },
|
67
|
-
{ ID: '4848433', Name: 'Alf Albert', Number: '007' },
|
68
|
-
{ ID: '3172517', Name: 'BNN Nolte', Number: '004911112' },
|
69
|
-
{ ID: '4848434', Name: 'Harry Harald', Number: '0049123456' },
|
70
|
-
{ ID: '4848431', Name: 'Karl Konrad', Number: '00123456' },
|
71
|
-
{ ID: '4848432', Name: 'Petra Pan', Number: '00513414' },
|
72
|
-
{ ID: '2925186', Name: 'Tom Tester', Number: '004901234567890' }
|
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
|
-
body
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'sms77/contacts'
|
5
|
+
require 'sms77/resources/contacts'
|
6
|
+
|
7
|
+
RSpec.describe Sms77, 'contacts' do
|
8
|
+
$new_contact_id = nil
|
9
|
+
|
10
|
+
def assert_new(response_body)
|
11
|
+
if response_body.is_a?(String)
|
12
|
+
code, $new_contact_id = response_body.split("\n")
|
13
|
+
$new_contact_id = $new_contact_id.to_i
|
14
|
+
else
|
15
|
+
code = response_body[:return]
|
16
|
+
$new_contact_id = response_body[:id]
|
17
|
+
end
|
18
|
+
|
19
|
+
expect(code).to be_numeric
|
20
|
+
expect($new_contact_id).to be_an_instance_of(Integer)
|
21
|
+
end
|
22
|
+
|
23
|
+
def assert_contact(contact)
|
24
|
+
if contact.is_a?(String)
|
25
|
+
id, name, number = contact.split(';')
|
26
|
+
|
27
|
+
id = id.gsub('"', '')
|
28
|
+
name = name.gsub('"', '')
|
29
|
+
number = number.gsub('"', '')
|
30
|
+
else
|
31
|
+
id = contact[:ID]
|
32
|
+
name = contact[:Name]
|
33
|
+
number = contact[:Number]
|
34
|
+
end
|
35
|
+
|
36
|
+
expect(id).to be_numeric
|
37
|
+
expect(name).to be_an_instance_of(String)
|
38
|
+
expect(number.sub('+', '')).to be_numeric
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'returns all contacts as CSV' do
|
42
|
+
stub = <<~CSV
|
43
|
+
"4848436";"";""
|
44
|
+
"4848437";"";""
|
45
|
+
"4848433";"Alf Albert";"007"
|
46
|
+
"3172517";"BNN Nolte";"004911112"
|
47
|
+
"4848434";"Harry Harald";"0049123456"
|
48
|
+
"4848431";"Karl Konrad";"00123456"
|
49
|
+
"4848432";"Petra Pan";"00513414"
|
50
|
+
"2925186";"Tom Tester";"004901234567890"
|
51
|
+
CSV
|
52
|
+
|
53
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
54
|
+
body = helper.request(helper.resource.method(:read), stub)
|
55
|
+
|
56
|
+
expect(body).to be_a(String)
|
57
|
+
|
58
|
+
body.split("\n").each do |contact|
|
59
|
+
assert_contact(contact)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'returns all contacts as JSON' do
|
64
|
+
stub = [
|
65
|
+
{ ID: '4848436', Name: '', Number: '' },
|
66
|
+
{ ID: '4848437', Name: '', Number: '' },
|
67
|
+
{ ID: '4848433', Name: 'Alf Albert', Number: '007' },
|
68
|
+
{ ID: '3172517', Name: 'BNN Nolte', Number: '004911112' },
|
69
|
+
{ ID: '4848434', Name: 'Harry Harald', Number: '0049123456' },
|
70
|
+
{ ID: '4848431', Name: 'Karl Konrad', Number: '00123456' },
|
71
|
+
{ ID: '4848432', Name: 'Petra Pan', Number: '00513414' },
|
72
|
+
{ ID: '2925186', Name: 'Tom Tester', Number: '004901234567890' }
|
73
|
+
]
|
74
|
+
|
75
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
76
|
+
body = helper.request(helper.resource.method(:read), stub, { json: true })
|
77
|
+
|
78
|
+
expect(body).to be_a(Array)
|
79
|
+
|
80
|
+
body.each do |contact|
|
81
|
+
assert_contact(contact)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'creates a contact and returns its ID as TEXT' do
|
86
|
+
stub = <<~TEXT
|
87
|
+
152
|
88
|
+
4868400
|
89
|
+
TEXT
|
90
|
+
|
91
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
92
|
+
body = helper.request(helper.resource.method(:write), stub, {})
|
93
|
+
|
94
|
+
expect(body).to be_a(String)
|
95
|
+
|
96
|
+
assert_new(body)
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'deletes a contact with given ID and return code' do
|
100
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
101
|
+
expect(helper.request(helper.resource.method(:delete), 152, { id: $new_contact_id })).to be_a(Integer)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'creates a contact and returns its ID as JSON' do
|
105
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
106
|
+
body = helper.request(helper.resource.method(:write), { id: 4868401, return: '152' }, { json: true })
|
107
|
+
|
108
|
+
expect(body).to be_a(Hash)
|
109
|
+
|
110
|
+
assert_new(body)
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'deletes a contact with given ID and return code as JSON' do
|
114
|
+
helper = Helper.new(Sms77::Resources::Contacts)
|
115
|
+
body = helper.request(
|
116
|
+
helper.resource.method(:delete),
|
117
|
+
{
|
118
|
+
return: '152'
|
119
|
+
},
|
120
|
+
{
|
121
|
+
id: $new_contact_id,
|
122
|
+
json: true,
|
123
|
+
}
|
124
|
+
)
|
125
|
+
|
126
|
+
expect(body).to be_a(Hash)
|
127
|
+
expect(body[:return]).to be_a(String)
|
128
|
+
end
|
129
|
+
end
|