Skip to content

Commit 6b55be4

Browse files
author
Dan Tolbert
committed
initial test skeleton
1 parent ce50a88 commit 6b55be4

File tree

5 files changed

+823
-89
lines changed

5 files changed

+823
-89
lines changed

lib/importTnorder.js

Lines changed: 110 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,165 @@
11
var fs = require("fs");
22
var Client = require("./client");
3-
var ORDER_PATH = "orders";
3+
var IMPORT_TN_ORDER_PATH = "importTnOrders";
4+
var LOAS_PATH = "loas";
5+
var st = require("stream");
6+
var streamifier = require("streamifier");
47

5-
function Order(){
8+
function ImportTnOrder(){
69
}
710

8-
Order.create = function(client, item, callback){
11+
ImportTnOrder.create = function(client, item, callback){
912
if(arguments.length === 2){
1013
callback = item;
1114
item = client;
1215
client = new Client();
1316
};
14-
client.makeRequest("post", client.concatAccountPath(ORDER_PATH), {order: item}, function(err, item){
17+
client.makeRequest("post", client.concatAccountPath(IMPORT_TN_ORDER_PATH), {importTnOrder: item}, function(err, item){
1518
if(err){
16-
return callback(err, item);
19+
return callback(err);
1720
}
18-
item.order.client = client;
19-
item.order.__proto__ = Order.prototype;
21+
item.client = client;
22+
item.id = item.orderId;
23+
item.__proto__ = ImportTnOrder.prototype;
2024
callback(null, item);
2125
});
2226
};
2327

24-
Order.get = function(client, id, callback){
28+
ImportTnOrder.get = function(client, id, callback){
2529
if(arguments.length === 2){
2630
callback = id;
2731
id = client;
2832
client = new Client();
2933
};
30-
client.makeRequest("get", client.concatAccountPath(ORDER_PATH) + "/" + id, function(err, item){
31-
if(err){
32-
return callback(err, item);
33-
}
34-
item.order.client = client;
35-
item.order.__proto__ = Order.prototype;
36-
callback(null, item);
37-
});
34+
client.makeRequest("get", client.concatAccountPath(IMPORT_TN_ORDER_PATH) + "/" + id, function(err, item){
35+
if(err){
36+
return callback(err);
37+
}
38+
item.client = client;
39+
item.id = id;
40+
item.__proto__ = ImportTnOrder.prototype;
41+
callback(null, item);
42+
});
3843
};
3944

40-
Order.list = function(client, query, callback){
41-
if(arguments.length === 2){
45+
ImportTnOrder.list = function(client, query, callback){
46+
if(arguments.length ===2){
4247
callback = query;
4348
query = client;
4449
client = new Client();
4550
}
46-
client.makeRequest("get", client.concatAccountPath(ORDER_PATH), query, function(err, res){
51+
client.makeRequest("get", client.concatAccountPath(IMPORT_TN_ORDER_PATH), query, function(err, res){
4752
if(err){
4853
return callback(err);
4954
}
50-
callback(null, res);
55+
return callback(null, res);
5156
});
5257
};
5358

54-
Order.prototype.getAreaCodes = function(callback){
55-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/areaCodes", function(err,areaCodes){
56-
if(err){
59+
ImportTnOrder.prototype.getHistory = function (callback) {
60+
this.client.makeRequest("get", this.client.concatAccountPath(IMPORT_TN_ORDER_PATH) + "/" + this.id + "/history", function (err, history) {
61+
if (err) {
5762
return callback(err);
5863
}
59-
var items = areaCodes.telephoneDetailsReport;
60-
callback(null, Array.isArray(items)?items:[items]);
64+
var items = history.orderHistory;
65+
callback(null, Array.isArray(items) ? items : [items]);
6166
});
6267
};
6368

64-
Order.prototype.getNpaNxx = function(callback){
65-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/npaNxx", function(err,npaNxx){
66-
if(err){
67-
return callback(err);
68-
}
69-
var items = npaNxx.telephoneDetailsReport;
70-
callback(null, Array.isArray(items)?items:[items]);
71-
});
72-
};
69+
function sendFile(request, file, mediaType, callback){
70+
var stream = null;
71+
request.buffer().type(mediaType || "application/octet-stream");
72+
if(typeof file === "string"){
73+
stream = fs.createReadStream(file);
74+
}
75+
else if(Buffer.isBuffer(file)){
76+
stream = streamifier.createReadStream(file);
77+
}
78+
else if(typeof file.pipe === "function" && typeof file.read === "function" && typeof file.on === "function"){
79+
stream = file;
80+
}
81+
if(stream){
82+
request.on("response", callback);
83+
request.on("error", function(err, result){
84+
return err;
85+
});
86+
stream.pipe(request);
7387

74-
Order.prototype.getTotals = function(callback) {
75-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/totals", function(err,totals){
76-
if(err){
77-
return callback(err);
78-
}
79-
var items = totals.telephoneDetailsReport;
80-
callback(null, Array.isArray(items)?items:[items]);
81-
});
82-
};
88+
return;
89+
}
90+
throw new Error("Invalid data to send");
91+
}
8392

84-
Order.prototype.getTns = function(callback){
85-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/tns", function(err,tns){
86-
if(err){
87-
return callback(err);
88-
}
89-
callback(null, tns);
93+
ImportTnOrder.prototype.createFile = function(file, mediaType, callback){
94+
if(arguments.length === 2){
95+
callback = mediaType;
96+
mediaType = null;
97+
}
98+
var client = this.client;
99+
var request = client.createPostRequest(client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH));
100+
sendFile(request, file, mediaType, function(res){
101+
client.checkResponse(res, function(err, result){
102+
if(err){
103+
return callback(err);
104+
}
105+
if (typeof result !== 'undefined') {
106+
return callback(null, result.filename);
107+
}
108+
else {
109+
return callback(null, "");
110+
}
111+
});
90112
});
91-
}
113+
};
92114

93-
Order.prototype.getHistory = function(callback){
94-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/history", function(err,history){
95-
if(err){
96-
return callback(err);
97-
}
98-
var items = history.orderHistory;
99-
callback(null, Array.isArray(items)?items:[items]);
115+
ImportTnOrder.prototype.updateFile = function(fileName, file, mediaType, callback){
116+
if(arguments.length === 3){
117+
callback = mediaType;
118+
mediaType = null;
119+
}
120+
var request = this.client.createPutRequest(this.client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH + "/" + fileName));
121+
var client = this.client;
122+
sendFile(request, file, mediaType, function(res){
123+
client.checkResponse(res, callback);
100124
});
101-
}
125+
};
102126

103-
Order.prototype.update = function(data, callback){
104-
this.client.makeRequest("put", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id, {order: data}, callback);
127+
ImportTnOrder.prototype.getFileMetadata = function(fileName, callback){
128+
this.client.makeRequest("get", this.client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH + "/" + fileName + "/metadata"), callback);
105129
};
106130

131+
ImportTnOrder.prototype.updateFileMetadata = function (fileName, metadata, callback) {
132+
this.client.makeRequest("put", this.client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH + "/" + fileName + "/metadata"),
133+
{ fileMetaData: metadata }, callback);
134+
};
107135

108-
Order.prototype.getNotes = function(callback){
109-
this.client.makeRequest("get", this.client.concatAccountPath(ORDER_PATH) + "/" + this.id + "/notes", function(err, notes){
136+
ImportTnOrder.prototype.getFiles = function(metadata, callback){
137+
if(arguments.length === 1){
138+
callback = metadata;
139+
metadata = false;
140+
}
141+
this.client.makeRequest("get", this.client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH), {metadata: metadata}, function(err, result){
110142
if(err){
111143
return callback(err);
112144
}
113-
var items = notes.note;
114-
callback(null, Array.isArray(items)?items:[items]);
145+
callback(null, result.fileData);
115146
});
116147
};
117148

118-
Order.prototype.addNote = function(note, callback){
119-
var self = this;
120-
var request = this.client.createPostRequest(this.client.concatAccountPath(ORDER_PATH + "/" + this.id + "/notes"), {note: note});
121-
request.buffer().then(res => {
122-
if(res.ok && res.headers.location){
123-
Client.getIdFromLocationHeader(res.headers.location, function(err, id){
124-
if(err){
125-
return callback(err);
126-
}
127-
self.getNotes(function(err, notes){
128-
if(err){
129-
return callback(err);
130-
}
131-
callback(null, notes.filter(function(n){ return n.id == id;})[0]);
132-
});
133-
});
149+
ImportTnOrder.prototype.getFile = function(fileName, destination){
150+
var request = this.client.createGetRequest(this.client.concatAccountPath(IMPORT_TN_ORDER_PATH + "/" + this.id + "/" + LOAS_PATH + "/" + fileName));
151+
if(destination){
152+
var stream = null;
153+
if(typeof destination === "string"){
154+
stream = fs.createWriteStream(destination);
134155
}
135-
else{
136-
self.client.checkResponse(res, callback);
156+
else if(typeof destination.write === "function"){
157+
stream = destination;
137158
}
138-
}).catch(err => {
139-
return callback(err);
140-
});
141-
};
142-
143-
module.exports = Order;
159+
if(stream){
160+
return request.pipe(stream);
161+
}
162+
}
163+
return request;
164+
}
165+
module.exports = ImportTnOrder;

lib/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ module.exports = {
2525
LsrOrder: require("./lsrOrder"),
2626
Lidbs: require("./lidbs"),
2727
Dlda: require("./dlda"),
28-
ImportTnChecker: require("./importTnChecker")
28+
ImportTnChecker: require("./importTnChecker"),
29+
ImportTnOrder: require("./importTnOrder"),
30+
RemoveImportedTnOrder: require("./removeImportedTnOrder")
2931
};
3032

3133
for (const property in module.exports) {

lib/removeImportedTnOrder.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
var fs = require("fs");
2+
var Client = require("./client");
3+
var REMOVE_IMPORTED_TN_ORDERS_PATH = "removeImportedTnOrders";
4+
5+
function Disconnect(){
6+
}
7+
8+
Disconnect.create = function (client, customerOrderId, numbers, callback){
9+
if(arguments.length === 3){
10+
callback = numbers;
11+
numbers = customerOrderId;
12+
customerOrderId = client;
13+
client = new Client();
14+
}
15+
var data = {
16+
removeImportedTnOrder:{
17+
customerOrderId: customerOrderId,
18+
_nameXmlElement: "CustomerOrderId",
19+
telephoneNumberList:
20+
numbers.map(function(number) {
21+
return {telephoneNumber: number};
22+
})
23+
}
24+
};
25+
client.makeRequest("post", client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH), data, callback);
26+
};
27+
28+
Disconnect.list = function (client, query, callback) {
29+
if(arguments.length === 2){
30+
callback = query;
31+
query = client;
32+
client = new Client();
33+
}
34+
client.makeRequest("get", client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH), query, function (err, res) {
35+
if (err) {
36+
return callback(err);
37+
}
38+
callback(null, res);
39+
});
40+
};
41+
42+
Disconnect.get = function(client, id, query, callback){
43+
if(arguments.length === 3){
44+
callback = query;
45+
query = id;
46+
id = client;
47+
client = new Client();
48+
}
49+
client.makeRequest("get", client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH + "/" + id), query, function(err,res){
50+
if(err){
51+
return callback(err);
52+
}
53+
callback(null,res);
54+
});
55+
56+
}
57+
58+
Disconnect.prototype.getHistory = function (callback) {
59+
this.client.makeRequest("get", this.client.concatAccountPath(REMOVE_IMPORTED_TN_ORDERS_PATH) + "/" + this.id + "/history", function (err, history) {
60+
if (err) {
61+
return callback(err);
62+
}
63+
var items = history.orderHistory;
64+
callback(null, Array.isArray(items) ? items : [items]);
65+
});
66+
};
67+
68+
module.exports = Disconnect;

0 commit comments

Comments
 (0)