Skip to content

Commit 1427924

Browse files
committed
DX-2448 Add moveTns endpoints
Closes #50
1 parent 5c65668 commit 1427924

File tree

3 files changed

+102
-1
lines changed

3 files changed

+102
-1
lines changed

lib/account.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var Client = require("./client");
2+
var MOVE_TNS_PATH = "moveTns";
23

34
module.exports = {
45
get: function(client, callback){
@@ -25,5 +26,41 @@ module.exports = {
2526
}
2627
callback(null, res.products);
2728
});
29+
},
30+
31+
getMoveTnsOrders: function(client, callback) {
32+
client.makeRequest("get", client.concatAccountPath("moveTns"), function(err,res){
33+
if(err){
34+
return callback(err);
35+
}
36+
callback(null, res);
37+
});
38+
},
39+
40+
moveTns: function(client, item, callback) {
41+
client.makeRequest("post", client.concatAccountPath(MOVE_TNS_PATH), {moveTnsOrder: item}, function(err, res){
42+
if(err){
43+
return callback(err, res);
44+
}
45+
callback(null, res);
46+
});
47+
},
48+
49+
getMoveTnsOrder: function(client, id, callback) {
50+
client.makeRequest("get", client.concatAccountPath("moveTns") + "/" + id, function(err,res){
51+
if(err){
52+
return callback(err);
53+
}
54+
callback(null, res);
55+
});
56+
},
57+
58+
getMoveTnsOrderHistory: function(client, id, callback) {
59+
client.makeRequest("get", client.concatAccountPath("moveTns")+ "/" + id + "/history", function(err,res){
60+
if(err){
61+
return callback(err);
62+
}
63+
callback(null, res);
64+
});
2865
}
2966
}

test/account.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,63 @@ describe("Account", function(){
3737
});
3838
});
3939
});
40+
describe("#getMoveTnsOrders", function(){
41+
it("Should list all moveTns orders on an account", function(done){
42+
helper.nock().get("/accounts/FakeAccountId/moveTns").reply(200, helper.xml.getMoveTnsOrders, {"Content-Type": "application/xml"});
43+
Account.getMoveTnsOrders(helper.createClient(), function(err, getMoveTnsOrders){
44+
if(err) {
45+
return done(err);
46+
}
47+
getMoveTnsOrders.totalCount.should.eql(2);
48+
getMoveTnsOrders.moveTnsOrderSummary[0].userId.should.eql("systemUser");
49+
done();
50+
});
51+
});
52+
});
53+
describe("#moveTns", function(){
54+
it("Should move Tns from one sippeer to another", function(done){
55+
numbers = ["1111", "2222"]
56+
data = {
57+
CustomerOrderId: "abc123",
58+
SiteId: "12345",
59+
SipPeerId: "54321"
60+
}
61+
data.telephoneNumbers = [numbers.map(number => {return {telephoneNumber: number}})];
62+
helper.nock().post("/accounts/FakeAccountId/moveTns").reply(200, helper.xml.moveTns, {"Content-Type": "application/xml"});
63+
Account.moveTns(helper.createClient(), data, function(err, moveTns){
64+
if(err) {
65+
return done(err);
66+
}
67+
moveTns.moveTnsOrder.accountId.should.eql(9999999);
68+
moveTns.moveTnsOrder.orderId.should.eql('093a9f9b-1a78-4e47-b6e2-776a484596f4');
69+
done();
70+
});
71+
});
72+
});
73+
describe("#getMoveTnsOrder", function(){
74+
it("Should retrieve information for a single moveTns order", function(done){
75+
helper.nock().get("/accounts/FakeAccountId/moveTns/Fake-order-Id-12345-98765").reply(200, helper.xml.getMoveTnsOrder, {"Content-Type": "application/xml"});
76+
Account.getMoveTnsOrder(helper.createClient(), "Fake-order-Id-12345-98765", function(err, getMoveTnsOrder){
77+
if(err) {
78+
return done(err);
79+
}
80+
getMoveTnsOrder.accountId.should.eql(9900012);
81+
getMoveTnsOrder.telephoneNumbers.telephoneNumber[0].should.eql('2106078250');
82+
done();
83+
});
84+
});
85+
});
86+
describe("#getMoveTnsOrderHistory", function(){
87+
it("Should retrieve history for a single moveTns order", function(done){
88+
helper.nock().get("/accounts/FakeAccountId/moveTns/Fake-order-Id-12345-98765/history").reply(200, helper.xml.getMoveTnsOrderHistory, {"Content-Type": "application/xml"});
89+
Account.getMoveTnsOrderHistory(helper.createClient(), "Fake-order-Id-12345-98765", function(err, getMoveTnsOrderHistory){
90+
if(err) {
91+
return done(err);
92+
}
93+
getMoveTnsOrderHistory.orderHistory[0].author.should.eql('admin');
94+
getMoveTnsOrderHistory.orderHistory[1].author.should.eql('admin');
95+
done();
96+
});
97+
});
98+
});
4099
});

test/xml.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,9 @@
6868
"csrOrder": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CsrResponse><LastModifiedBy>user</LastModifiedBy><OrderCreateDate>2020-02-25T15:39:22.079Z</OrderCreateDate><AccountId>9999999</AccountId><OrderId>20ba7d26-7fa0-4716-ab45-6c8e07d37862</OrderId><LastModifiedDate>2020-02-25T15:39:41.166Z</LastModifiedDate><Status>COMPLETE</Status><CsrData><CustomerName>House of Mouse</CustomerName><ServiceAddress><UnparsedAddress>1234 Main ST Durham NC 27707</UnparsedAddress><HouseNumber>1234</HouseNumber><StreetName>Main</StreetName><StreetSuffix>ST</StreetSuffix><City>Durham</City><State>NC</State><Zip>27707</Zip></ServiceAddress><WorkingTelephoneNumber>9198675309</WorkingTelephoneNumber><WorkingTelephoneNumbersOnAccount><TelephoneNumber>9198675309</TelephoneNumber></WorkingTelephoneNumbersOnAccount></CsrData></CsrResponse>",
6969
"csrResponse": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CsrResponse><OrderId>218a295f-4f8a-4d1a-ba55-3e0aac6207cb</OrderId><Status>RECEIVED</Status></CsrResponse>",
7070
"originationSettings": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><SipPeerOriginationSettingsResponse> <SipPeerOriginationSettings> <VoiceProtocol>HTTP</VoiceProtocol> <HttpSettings> <HttpVoiceV2AppId>{{voice-applicationId}}</HttpVoiceV2AppId> </HttpSettings> </SipPeerOriginationSettings></SipPeerOriginationSettingsResponse>",
71-
"accountProducts": "<?xml version=\"1.0\"?><AccountProductsResponse> <Products> <Product><Name>Termination</Name><Features> <Feature>TermHttpVoice</Feature></Features> </Product> <Product><Name>VirtualInventory</Name> </Product></Products></AccountProductsResponse>"}
71+
"accountProducts": "<?xml version=\"1.0\"?><AccountProductsResponse> <Products> <Product><Name>Termination</Name><Features> <Feature>TermHttpVoice</Feature></Features> </Product> <Product><Name>VirtualInventory</Name> </Product></Products></AccountProductsResponse>",
72+
"getMoveTnsOrders": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><MoveTnsOrders><TotalCount>2</TotalCount><MoveTnsOrderSummary><accountId>14</accountId><SourceAccountId>15</SourceAccountId><CountOfTNs>1</CountOfTNs><CustomerOrderId>CustomerOrderId</CustomerOrderId><userId>systemUser</userId><lastModifiedDate>2019-01-24T11:08:09.770Z</lastModifiedDate><OrderDate>2019-01-24T11:08:09.770Z</OrderDate><OrderType>move_tn_orders</OrderType> <OrderStatus>COMPLETE</OrderStatus><OrderId>211a103c-5f9c-4117-8833-c574bdc390fd</OrderId></MoveTnsOrderSummary><MoveTnsOrderSummary><accountId>14</accountId><SourceAccountId>15</SourceAccountId><CountOfTNs>2</CountOfTNs><CustomerOrderId>CustomerOrderId</CustomerOrderId><userId>systemUser</userId><lastModifiedDate>2019-01-24T10:43:16.934Z</lastModifiedDate><OrderDate>2019-01-24T10:43:16.934Z</OrderDate><OrderType>move_tn_orders</OrderType><OrderStatus>PARTIAL</OrderStatus><OrderId>8dc32f09-2329-4c73-b702-526f46b02712</OrderId></MoveTnsOrderSummary></MoveTnsOrders>",
73+
"moveTns": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><MoveTnsOrderResponse><MoveTnsOrder><OrderCreateDate>2020-09-15T16:36:22.076Z</OrderCreateDate><AccountId>9999999</AccountId><SourceAccountId>6555555</SourceAccountId><CreatedByUser>systemUser</CreatedByUser><OrderId>093a9f9b-1a78-4e47-b6e2-776a484596f4</OrderId><LastModifiedDate>2020-09-15T16:36:22.096Z</LastModifiedDate><SiteId>483</SiteId><TelephoneNumbers><TelephoneNumber>2032081004</TelephoneNumber><TelephoneNumber>2032081005</TelephoneNumber></TelephoneNumbers><ProcessingStatus>RECEIVED</ProcessingStatus><SipPeerId>500025</SipPeerId></MoveTnsOrder></MoveTnsOrderResponse>",
74+
"getMoveTnsOrder": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><MoveTnsOrder><OrderCreateDate>2020-08-10T02:58:04.615Z</OrderCreateDate><AccountId>9900012</AccountId><SourceAccountId>9900013</SourceAccountId><CreatedByUser>jdb</CreatedByUser><OrderId>bf1305b8-8998-1111-2222-51ba3ce52d4e</OrderId><CustomerOrderId>123-456-789-abc</CustomerOrderId><LastModifiedDate>2018-01-09T02:58:05.298Z</LastModifiedDate><SiteId>65487</SiteId><SipPeerId>885544</SipPeerId><TelephoneNumbers><TelephoneNumber>2106078250</TelephoneNumber><TelephoneNumber>2109678273</TelephoneNumber><TelephoneNumber>2109678331</TelephoneNumber><TelephoneNumber>2109678337</TelephoneNumber><TelephoneNumber>2266401468</TelephoneNumber></TelephoneNumbers><ProcessingStatus>PARTIAL</ProcessingStatus><Errors></Errors></MoveTnsOrder>",
75+
"getMoveTnsOrderHistory": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><OrderHistoryWrapper><OrderHistory><OrderDate>2020-09-17T08:56:39.607Z</OrderDate><Note>Move TNs order has been received by the system.</Note><Author>admin</Author><Status>received</Status></OrderHistory><OrderHistory><OrderDate>2020-09-17T08:56:39.743Z</OrderDate><Note>Move TNs order processing has started.</Note><Author>admin</Author><Status>processing</Status></OrderHistory><OrderHistory><OrderDate>2020-09-17T08:56:39.820Z</OrderDate><Note>Move TNs order is complete.</Note><Author>admin</Author><Status>complete</Status></OrderHistory></OrderHistoryWrapper>"
76+
}

0 commit comments

Comments
 (0)