Skip to content

Commit 06b0e73

Browse files
authored
Merge pull request #3 from Bandwidth/importTns
add importTNChecker
2 parents 3270d2d + 917dd27 commit 06b0e73

File tree

12 files changed

+1939
-16
lines changed

12 files changed

+1939
-16
lines changed

README.md

Lines changed: 129 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# node-numbers
22

3-
NodeJs Client library for Bandwidth Numbers API
3+
NodeJs Client library for Bandwidth Numbers API
44

55
## Other Node SDKs
66
* Messaging: https://github.com/Bandwidth/node-messaging
@@ -20,6 +20,8 @@ This SDK stable for node versions 7 and above
2020
## Release Notes
2121
| Version | Notes |
2222
|:--|:--|
23+
| 1.1.0| Added import tn functionality, added promise based `Async` functions |
24+
2325

2426
## Install
2527

@@ -36,7 +38,7 @@ var numbers = require("@bandwidth/numbers");
3638

3739
//Using client directly
3840
var client = new numbers.Client("accountId", "userName", "password");
39-
numbers.Site.list(client, function(err, sites){...});
41+
numbers.Site.list(client, function(err, sites){...});
4042

4143
//Or you can use default client instance (do this only once)
4244
numbers.Client.globalOptions.accountId = "accountId";
@@ -51,6 +53,54 @@ numbers.Site.list(function(err, sites){
5153

5254
```
5355

56+
## Async Methods
57+
58+
Each API Call also contains an async method that returns a promise for use with `.then` or `async`/`await`.
59+
60+
The async method is the original method name with `Async` added.
61+
62+
### Example for listing Available Numbers
63+
64+
#### Callbacks
65+
66+
```js
67+
// Callbacks
68+
numbers.AvailableNumbers.list(query, (err, availableNumbers) => {
69+
if (err) {
70+
console.log(err);
71+
}
72+
else {
73+
console.log(availableNumbers);
74+
}
75+
});
76+
```
77+
78+
#### Promise Chaining
79+
```js
80+
//Promise chaining
81+
numbers.AvailableNumbers.listAsync(query)
82+
.then(availableNumbers => {
83+
console.log(availableNumbers);
84+
})
85+
.catch(e => {
86+
console.log(e);
87+
});
88+
89+
```
90+
91+
#### Async/Await
92+
```js
93+
//Async/await
94+
try {
95+
const availableNumbers = await numbers.AvailableNumbers.listAsync(query);
96+
console.log(availableNumbers);
97+
}
98+
catch (e) {
99+
console.log(e)
100+
}
101+
102+
```
103+
54104
## Examples
55105
There is an 'examples' folder in the source tree that shows how each of the API objects work with simple example code. To run the examples:
56106

@@ -83,7 +133,7 @@ numbers.Site.create({siteObject}, function(err,item){
83133

84134
Each entity has a get, list, create, update and delete method if appropriate.
85135

86-
All properties are camel-cased for Javascript readability, and are converted on the fly to the proper
136+
All properties are camel-cased for Javascript readability, and are converted on the fly to the proper
87137
case by the internals of the API when converted to XML.
88138

89139

@@ -119,7 +169,7 @@ Retrieves a list of disconnected numbers for an account
119169
numbers.DiscNumber.list({"areaCode":"919"}, callback);
120170
```
121171

122-
## Disconnect Numbers
172+
## Disconnect Numbers
123173
The Disconnect object is used to disconnect numbers from an account. Creates a disconnect order that can be tracked
124174

125175
### Create Disconnect
@@ -377,7 +427,7 @@ numbers.Order.get(id, function(err, order){
377427

378428
```
379429

380-
### Order Instance Methods
430+
### Order Instance Methods
381431

382432
```Javascript
383433
// get Area Codes
@@ -420,7 +470,7 @@ var data = {
420470
stateCode: "NC",
421471
county: "Wake"
422472
}
423-
},
473+
},
424474
loaAuthorizingPerson: "Joe Blow",
425475
listOfPhoneNumbers: {
426476
phoneNumber:["9195551212"]
@@ -511,9 +561,9 @@ numbers.RateCenter.list(query, callback);
511561
```Javascript
512562
var data = {
513563
peerName:"A New SIP Peer",
514-
isDefaultPeer:false,
564+
isDefaultPeer:false,
515565
shortMessagingProtocol:"SMPP",
516-
siteId:selectedSite,
566+
siteId:selectedSite,
517567
voiceHosts:[
518568
{
519569
host:{
@@ -566,8 +616,8 @@ numbers.SipPeer.get(function(err, sipPeer){
566616
```Javascript
567617
numbers.SipPeer.get(function(err,sipPeer){
568618
// get TN for this peer
569-
sipPeer.getTns(number, callback);
570-
619+
sipPeer.getTns(number, callback);
620+
571621
// get all TNs for this peer
572622
sipPeer.getTns(callback);
573623

@@ -584,7 +634,7 @@ numbers.SipPeer.get(function(err,sipPeer){
584634
## Sites
585635

586636
### Create A Site
587-
A site is what is called Location in the web UI.
637+
A site is what is called Location in the web UI.
588638

589639
```Javascript
590640
var site = {
@@ -633,7 +683,7 @@ numbers.Site.get(id, function(err,site){
633683
site.getPortIns(query, callback);
634684

635685
// get Total Tns
636-
site.getTotalTns(query, callback);
686+
site.getTotalTns(query, callback);
637687
});
638688
```
639689
### Site SipPeer Methods
@@ -743,3 +793,70 @@ numbers.TnReservation.get(id, function(err, tn){
743793
tn.delete(callback);
744794
});
745795
```
796+
797+
## Hosted Messaging
798+
799+
### Check importability
800+
801+
```js
802+
const numbers = ["1111", "2222"];
803+
804+
try {
805+
const importResults = await ImportTnChecker.checkAsync(numbers);
806+
console.log(importResults);
807+
}
808+
catch (e) {
809+
console.log(e)
810+
}
811+
```
812+
813+
### Create importTNOrder
814+
815+
```js
816+
const numbers = ["1111", "2222"];
817+
818+
const data = {
819+
customerOrderId: "1111",
820+
siteId: "222",
821+
sipPeerId: "333",
822+
loaAuthorizingPerson: "LoaAuthorizingPerson",
823+
subscriber: {
824+
name: "ABC Inc.",
825+
serviceAddress: {
826+
houseNumber: "11235",
827+
streetName: "StreetName",
828+
stateCode: "NC",
829+
city: "City",
830+
county: "county",
831+
zip: "27606"
832+
}
833+
}
834+
};
835+
836+
try {
837+
const importTnOrder = await ImportTnOrder.createAsync(numbers);
838+
console.log(importTnOrder);
839+
}
840+
catch (e) {
841+
console.log(e)
842+
}
843+
```
844+
845+
### Create removeImportedTnOrder
846+
847+
To restore the messaging functionality to the original owner, create a `removeImportedTnOrder` order to remove the numbers from your account.
848+
849+
```js
850+
const numbers = ["1111", "2222"];
851+
const customerOrderId = "customerOrderId"
852+
853+
try {
854+
const importTnOrder = await RemoveImportedTnOrder.createAsync(numbers, customerOrderId);
855+
console.log(importTnOrder);
856+
}
857+
catch (e) {
858+
console.log(e)
859+
}
860+
```
861+
862+

lib/importTnChecker.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var Client = require("./client");
2+
var IMPORT_TN_CHECKER_PATH = "importTnChecker";
3+
4+
module.exports = {
5+
check: function(client, numbers, callback){
6+
if(arguments.length === 2){
7+
callback = numbers;
8+
numbers = client;
9+
client = new Client();
10+
}
11+
var data = {
12+
importTnCheckerPayload:{
13+
telephoneNumbers: {
14+
telephoneNumber:numbers
15+
}
16+
}
17+
};
18+
client.makeRequest("post", client.concatAccountPath(IMPORT_TN_CHECKER_PATH), data, callback);
19+
}
20+
};

0 commit comments

Comments
 (0)