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
3840var 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)
4244numbers .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
55105There 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
84134Each 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
87137case 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
119169numbers .DiscNumber .list ({" areaCode" : " 919" }, callback);
120170```
121171
122- ## Disconnect Numbers
172+ ## Disconnect Numbers
123173The 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
512562var 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
567617numbers .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
590640var 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+
0 commit comments