-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.js
55 lines (46 loc) · 1.19 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const request = require('request-promise');
const fs = require("fs");
module.exports = function(apiKey) {
return new Client(apiKey)
}
function Client(apiKey) {
this.apiKey = apiKey;
}
Client.prototype.predict = function(options) {
modelType = options.modelType
modelId = options.modelId
filePath = options.filePath || ''
fileURL = options.fileURL
fileName = filePath ? filePath.split('/')[filePath.split('/').length - 1] : ''
let urlNanoNets = `https://app.nanonets.com/api/v2/${modelType}/Model/${modelId}/LabelFile/`
var urlOptions = {
'method': 'POST',
'url': urlNanoNets,
'headers': {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization' : "Basic " + Buffer.from(this.apiKey + ":").toString("base64")
},
'formData' : {
'modelId': modelId,
}
}
if(fileURL){
urlOptions.formData = {
'urls' : fileURL,
'modelId': modelId
}
}
if(filePath) {
urlOptions.formData = {
'modelId': modelId,
'file': {
'value': fs.createReadStream(filePath),
'options': {
'filename': fileName,
'contentType': null
}
}
}
}
return request(urlOptions)
}