ruby-bandwidth-iris 2.1.0 → 2.2.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.
- checksums.yaml +4 -4
- data/README.md +67 -0
- data/lib/bandwidth-iris/client.rb +31 -0
- data/lib/bandwidth-iris/import_tn_orders.rb +44 -1
- data/lib/bandwidth-iris/version.rb +1 -1
- data/spec/bandwidth-iris/import_tn_orders_spec.rb +82 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b38867e95d7ff4df6b99dccd34053aee236600eafae007ca2ff81c7a7ae8c30e
|
4
|
+
data.tar.gz: a8c7e2a15ea0330c21bd1303e21df32463c2d76f051fe29bdf3fc30da77ce9ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 589d2010d44909cb6596974f08484729e29ba4963ae360d849f86f7d55361c68c262c3cb4d8a0376ea8c5efae24e5e80abb7a85e8985fff4f3a4db6994c28e47
|
7
|
+
data.tar.gz: 03f6ccdff3f5bacfe5395b5bcf6bff95fec5dc72695396f7395dff33947a6e7ce0a3c221226bd482672fcb24c3e2d09c4d02537cfea0c096488784f17fba80f0
|
data/README.md
CHANGED
@@ -12,6 +12,7 @@ Ruby Client library for IRIS / BBS API
|
|
12
12
|
| 2.0.0 | Added `importTnOrders`, `removeImportedTnOrders`, `inserviceNumbers`, and `importTnChecker` endpoints. This release also changed the response body of `BandwidthIris::InServiceNumber.list()`. Please make sure to update your code to include this change. |
|
13
13
|
| 2.0.1 | Updated gem dependencies to be less restrictive |
|
14
14
|
| 2.1.0 | Added `csrs` endpoints |
|
15
|
+
| 2.2.0 | Added `loas` endpoints to `importTnOrders` |
|
15
16
|
|
16
17
|
## Install
|
17
18
|
|
@@ -604,6 +605,7 @@ tn.delete()
|
|
604
605
|
import_tn_order = {
|
605
606
|
:customer_order_id => "id",
|
606
607
|
:site_id => "12345",
|
608
|
+
:sip_peer_id => "23456",
|
607
609
|
:subscriber => {
|
608
610
|
:service_address => {
|
609
611
|
:city => "city",
|
@@ -696,6 +698,71 @@ response = BandwidthIris::RemoveImportedTnOrders.create_remove_imported_tn_order
|
|
696
698
|
puts response
|
697
699
|
```
|
698
700
|
|
701
|
+
### Get LOAs
|
702
|
+
```ruby
|
703
|
+
response = BandwidthIris::ImportTnOrders.get_loa_files("order_id")
|
704
|
+
puts response[0][:result_message]
|
705
|
+
puts response[0][:file_names] #this can be a single string (if there's 1 file) or an array of strings (if there's multiple files)
|
706
|
+
```
|
707
|
+
|
708
|
+
### Upload LOA
|
709
|
+
Valid `mime_types` can be found on the [Dashboard API Reference](https://dev.bandwidth.com/numbers/apiReference.html) under `/accounts /{accountId} /importTnOrders /{orderid} /loas`
|
710
|
+
|
711
|
+
Mime types are expected to be in the format `x/y`, such as `application/pdf` or `text/plain`
|
712
|
+
|
713
|
+
```ruby
|
714
|
+
BandwidthIris::ImportTnOrders.upload_loa_file("order_id", "binary_file_contents", "mime_type")
|
715
|
+
```
|
716
|
+
|
717
|
+
```ruby
|
718
|
+
f = open("loa.pdf", "rb")
|
719
|
+
file_content = f.read
|
720
|
+
f.close()
|
721
|
+
|
722
|
+
BandwidthIris::ImportTnOrders.upload_loa_file("order_id", file_content, "application/pdf")
|
723
|
+
```
|
724
|
+
|
725
|
+
### Download LOA
|
726
|
+
Note: Make sure to grab the desired file ID from the response of `BandwidthIris::ImportTnOrders.get_loa_files("order_id")` in the field `response[0][:file_names]`
|
727
|
+
|
728
|
+
```ruby
|
729
|
+
f = open("write.pdf", "wb")
|
730
|
+
response = BandwidthIris::ImportTnOrders.download_loa_file("order_id", "file_id")
|
731
|
+
f.puts(response)
|
732
|
+
f.close()
|
733
|
+
```
|
734
|
+
|
735
|
+
### Replace LOA
|
736
|
+
```ruby
|
737
|
+
BandwidthIris::ImportTnOrders.replace_loa_file("order_id", "file_id", "binary_file_contents", "mime_type")
|
738
|
+
```
|
739
|
+
|
740
|
+
### Delete LOA
|
741
|
+
```ruby
|
742
|
+
BandwidthIris::ImportTnOrders.delete_loa_file("order_id", "file_id")
|
743
|
+
```
|
744
|
+
|
745
|
+
### Get LOA Metadata
|
746
|
+
```ruby
|
747
|
+
response = BandwidthIris::ImportTnOrders.get_loa_file_metadata("order_id", "file_id")
|
748
|
+
puts response[0][:document_name]
|
749
|
+
puts response[0][:file_name]
|
750
|
+
```
|
751
|
+
|
752
|
+
### Update LOA Metadata
|
753
|
+
```ruby
|
754
|
+
metadata = {
|
755
|
+
:document_name => "file_name",
|
756
|
+
:document_type => "LOA"
|
757
|
+
}
|
758
|
+
BandwidthIris::ImportTnOrders.update_loa_file_metadata("order_id", "file_id", metadata)
|
759
|
+
```
|
760
|
+
|
761
|
+
### Delete LOA Metadata
|
762
|
+
```ruby
|
763
|
+
BandwidthIris::ImportTnOrders.delete_loa_file_metadata("order_id", "file_id")
|
764
|
+
```
|
765
|
+
|
699
766
|
## CSR
|
700
767
|
|
701
768
|
### Create CSR Order
|
@@ -83,6 +83,37 @@ module BandwidthIris
|
|
83
83
|
[body || {}, symbolize(response.headers || {})]
|
84
84
|
end
|
85
85
|
|
86
|
+
# Makes an HTTP request for file uploads
|
87
|
+
# @param method [Symbol] http method to make
|
88
|
+
# @param path [string] path of url (exclude api verion and endpoint) to make call
|
89
|
+
# @param data [string] the raw binary string representing the file to upload
|
90
|
+
# @param content_type [string] the content type of the request
|
91
|
+
# @return [Array] array with 2 elements: parsed data of response and response headers
|
92
|
+
def make_request_file_upload(method, path, data, content_type)
|
93
|
+
connection = @create_connection.call()
|
94
|
+
response = connection.run_request(method, @build_path.call(path), data, {'Content-Type' => content_type})
|
95
|
+
body = check_response(response)
|
96
|
+
[body || {}, symbolize(response.headers || {})]
|
97
|
+
end
|
98
|
+
|
99
|
+
# Makes an HTTP request for a file download
|
100
|
+
# @param method [Symbol] http method to make
|
101
|
+
# @param path [string] path of url (exclude api verion and endpoint) to make call
|
102
|
+
# @param data [Hash] data which will be sent with request (for :get and :delete request they will be sent with query in url)
|
103
|
+
# @return [string] raw response from the API
|
104
|
+
def make_request_file_download(method, path, data = {})
|
105
|
+
connection = @create_connection.call()
|
106
|
+
response = if method == :get || method == :delete
|
107
|
+
d = camelcase(data)
|
108
|
+
connection.run_request(method, @build_path.call(path), nil, nil) do |req|
|
109
|
+
req.params = d unless d == nil || d.empty?
|
110
|
+
end
|
111
|
+
else
|
112
|
+
connection.run_request(method, @build_path.call(path), build_xml(data), {'Content-Type' => 'application/xml'})
|
113
|
+
end
|
114
|
+
return response.body
|
115
|
+
end
|
116
|
+
|
86
117
|
# Check response object and raise error if status code >= 400
|
87
118
|
# @param response response object
|
88
119
|
def check_response(response)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module BandwidthIris
|
2
|
-
IMPORT_TN_ORDERS_PATH = "
|
2
|
+
IMPORT_TN_ORDERS_PATH = "importtnorders"
|
3
3
|
|
4
4
|
class ImportTnOrders
|
5
5
|
extend ClientWrapper
|
@@ -28,5 +28,48 @@ module BandwidthIris
|
|
28
28
|
return data
|
29
29
|
end
|
30
30
|
wrap_client_arg :create_import_tn_order
|
31
|
+
|
32
|
+
def self.get_loa_files(client, order_id)
|
33
|
+
data = client.make_request(:get, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}"))
|
34
|
+
return data
|
35
|
+
end
|
36
|
+
wrap_client_arg :get_loa_files
|
37
|
+
|
38
|
+
def self.upload_loa_file(client, order_id, file_contents, mime_type)
|
39
|
+
client.make_request_file_upload(:post, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}"), file_contents, mime_type)
|
40
|
+
end
|
41
|
+
wrap_client_arg :upload_loa_file
|
42
|
+
|
43
|
+
def self.download_loa_file(client, order_id, file_id)
|
44
|
+
data = client.make_request_file_download(:get, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}"))
|
45
|
+
return data
|
46
|
+
end
|
47
|
+
wrap_client_arg :download_loa_file
|
48
|
+
|
49
|
+
def self.replace_loa_file(client, order_id, file_id, file_contents, mime_type)
|
50
|
+
data = client.make_request_file_upload(:put, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}"), file_contents, mime_type)
|
51
|
+
end
|
52
|
+
wrap_client_arg :replace_loa_file
|
53
|
+
|
54
|
+
def self.delete_loa_file(client, order_id, file_id)
|
55
|
+
client.make_request(:delete, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}"))
|
56
|
+
end
|
57
|
+
wrap_client_arg :delete_loa_file
|
58
|
+
|
59
|
+
def self.get_loa_file_metadata(client, order_id, file_id)
|
60
|
+
data = client.make_request(:get, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}/metadata"))
|
61
|
+
return data
|
62
|
+
end
|
63
|
+
wrap_client_arg :get_loa_file_metadata
|
64
|
+
|
65
|
+
def self.update_loa_file_metadata(client, order_id, file_id, file_metadata)
|
66
|
+
client.make_request(:put, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}/metadata"), {:file_meta_data => file_metadata})
|
67
|
+
end
|
68
|
+
wrap_client_arg :update_loa_file_metadata
|
69
|
+
|
70
|
+
def self.delete_loa_file_metadata(client, order_id, file_id)
|
71
|
+
client.make_request(:delete, client.concat_account_path("#{IMPORT_TN_ORDERS_PATH}/#{order_id}/#{LOAS_PATH}/#{file_id}/metadata"))
|
72
|
+
end
|
73
|
+
wrap_client_arg :delete_loa_file_metadata
|
31
74
|
end
|
32
75
|
end
|
@@ -11,7 +11,7 @@ describe BandwidthIris::ImportTnOrders do
|
|
11
11
|
|
12
12
|
describe '#create' do
|
13
13
|
it 'should get an order' do
|
14
|
-
client.stubs.get('/v1.0/accounts/accountId/
|
14
|
+
client.stubs.get('/v1.0/accounts/accountId/importtnorders', {}) {|env| [200, {}, '']}
|
15
15
|
item = ImportTnOrders.get_import_tn_orders(client)
|
16
16
|
end
|
17
17
|
end
|
@@ -19,7 +19,7 @@ describe BandwidthIris::ImportTnOrders do
|
|
19
19
|
describe '#get' do
|
20
20
|
it 'should get an order' do
|
21
21
|
order = "123"
|
22
|
-
client.stubs.get("/v1.0/accounts/accountId/
|
22
|
+
client.stubs.get("/v1.0/accounts/accountId/importtnorders/#{order}", {}) {|env| [200, {}, '']}
|
23
23
|
item = ImportTnOrders.get_import_tn_order(client, order)
|
24
24
|
end
|
25
25
|
end
|
@@ -27,7 +27,7 @@ describe BandwidthIris::ImportTnOrders do
|
|
27
27
|
describe '#get history' do
|
28
28
|
it 'should get an order history' do
|
29
29
|
order = "123"
|
30
|
-
client.stubs.get("/v1.0/accounts/accountId/
|
30
|
+
client.stubs.get("/v1.0/accounts/accountId/importtnorders/#{order}/history", {}) {|env| [200, {}, '']}
|
31
31
|
item = ImportTnOrders.get_import_tn_order_history(client, order)
|
32
32
|
end
|
33
33
|
end
|
@@ -37,8 +37,86 @@ describe BandwidthIris::ImportTnOrders do
|
|
37
37
|
data = {
|
38
38
|
:id => "id"
|
39
39
|
}
|
40
|
-
client.stubs.post("/v1.0/accounts/accountId/
|
40
|
+
client.stubs.post("/v1.0/accounts/accountId/importtnorders", client.build_xml({:import_tn_order => data})) {|env| [200, {}, '']}
|
41
41
|
item = ImportTnOrders.create_import_tn_order(client, data)
|
42
42
|
end
|
43
43
|
end
|
44
|
+
|
45
|
+
describe '#get loa files' do
|
46
|
+
it 'should get loa files' do
|
47
|
+
order = "123"
|
48
|
+
client.stubs.get("/v1.0/accounts/accountId/importtnorders/#{order}/loas") {|env| [200, {}, '']}
|
49
|
+
item = ImportTnOrders.get_loa_files(client, order)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#upload loa file' do
|
54
|
+
it 'should upload loa file' do
|
55
|
+
file = '12345'
|
56
|
+
mime_type = 'text/plain'
|
57
|
+
order = '123'
|
58
|
+
client.stubs.post("/v1.0/accounts/accountId/importtnorders/#{order}/loas", file) {|env| [200, {}, '']}
|
59
|
+
item = ImportTnOrders.upload_loa_file(client, order, file, mime_type)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#download loa file' do
|
64
|
+
it 'should download loa file' do
|
65
|
+
order = "123"
|
66
|
+
file_id = "456"
|
67
|
+
client.stubs.get("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}") {|env| [200, {}, '']}
|
68
|
+
item = ImportTnOrders.download_loa_file(client, order, file_id)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '#replace loa file' do
|
73
|
+
it 'should replace loa file' do
|
74
|
+
file = '12345'
|
75
|
+
mime_type = 'text/plain'
|
76
|
+
order = '123'
|
77
|
+
file_id = '456'
|
78
|
+
client.stubs.put("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}", file) {|env| [200, {}, '']}
|
79
|
+
item = ImportTnOrders.replace_loa_file(client, order, file_id, file, mime_type)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '#delete loa file' do
|
84
|
+
it 'should delete loa file' do
|
85
|
+
order = '123'
|
86
|
+
file_id = '456'
|
87
|
+
client.stubs.delete("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}") {|env| [200, {}, '']}
|
88
|
+
item = ImportTnOrders.delete_loa_file(client, order, file_id)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe '#get loa file metadata' do
|
93
|
+
it 'should get loa file metadata' do
|
94
|
+
order = "123"
|
95
|
+
file_id = "456"
|
96
|
+
client.stubs.get("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}/metadata") {|env| [200, {}, '']}
|
97
|
+
item = ImportTnOrders.get_loa_file_metadata(client, order, file_id)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe '#update loa file metadata' do
|
102
|
+
it 'should update loa file metadata' do
|
103
|
+
data = {
|
104
|
+
:test => "1234"
|
105
|
+
}
|
106
|
+
order = "123"
|
107
|
+
file_id = "456"
|
108
|
+
client.stubs.put("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}/metadata", client.build_xml({:file_meta_data => data})) {|env| [200, {}, '']}
|
109
|
+
item = ImportTnOrders.update_loa_file_metadata(client, order, file_id, data)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe '#delete loa file metadata' do
|
114
|
+
it 'should delete loa file metadata' do
|
115
|
+
order = "123"
|
116
|
+
file_id = "456"
|
117
|
+
client.stubs.delete("/v1.0/accounts/accountId/importtnorders/#{order}/loas/#{file_id}/metadata") {|env| [200, {}, '']}
|
118
|
+
item = ImportTnOrders.delete_loa_file_metadata(client, order, file_id)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
44
122
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-bandwidth-iris
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Belchikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|