1 var request
= require('request');
2 var Promise
= require('bluebird');
3 var rp
= require('request-promise');
4 var utils
= require('../../../framework/core/api_utils/utils.js');
5 var constants
= require('../../../framework/core/api_utils/constants.js');
6 var fs
= require('fs');
7 var _
= require('lodash');
9 PackageFileHandler
= {};
11 function deleteFile(filename
) {
12 setTimeout(function() {
13 fs
.unlinkSync(constants
.BASE_PACKAGE_UPLOAD_DESTINATION
+ filename
);
14 }, constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
);
17 function checkStatus(req
, transactionId
) {
18 var upload_server
= req
.query
['upload_server'];
19 var headers
= _
.extend({},
21 'Authorization': req
.get('Authorization')
25 url
: upload_server
+ ':' + constants
.PACKAGE_MANAGER_SERVER_PORT
+ '/api/upload/' + transactionId
+ '/state',
28 forever
: constants
.FOREVER_ON
,
29 rejectUnauthorized
: false
30 }, function(error
, response
, body
) {
32 console
.log('Error checking status for transaction', transactionId
, '. Will delete file', req
.file
.filename
, ' in ', constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
,' milliseconds');
33 deleteFile(req
.file
.filename
);
35 var jsonStatus
= null;
36 if (typeof body
== 'string' || body
instanceof String
) {
37 jsonStatus
= JSON
.parse(body
);
42 if (jsonStatus
.status
&& (jsonStatus
.status
== 'success' || jsonStatus
.status
== 'failure')) {
43 console
.log('Transaction ', transactionId
, ' completed with status ', jsonStatus
.status
,'. Will delete file', req
.file
.filename
, ' in ', constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
,' milliseconds');
44 deleteFile(req
.file
.filename
);
46 setTimeout(function() {
47 checkStatus(req
, transactionId
);
48 }, constants
.PACKAGE_FILE_ONBOARD_TRANSACTION_STATUS_CHECK_DELAY_MILLISECONDS
);
54 PackageFileHandler
.checkCreatePackageStatusAndHandleFile = function(req
, transactionId
) {
55 checkStatus(req
, transactionId
);
59 module
.exports
= PackageFileHandler
;