Skip to content
This repository was archived by the owner on Dec 23, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/atajo.io.js
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ _io = {
return;
}

var fnam = './handlers/' + handlerName + '.js';
var fnam = path.join(__dirname, '..', '..', 'handlers', handlerName + '.js');
atajo.log.d("CHECKING HANDLER " + fnam);
fs.exists(fnam, function(exists) {

Expand Down
84 changes: 65 additions & 19 deletions lib/handlerWebRequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
* This is a helper to call http requests for handlers
* This when using an underlying web api
*/
(function() {
var apiConfig = require('../../apiConfig.json');
var http = require('http');
var path = require('path');
var url = require('url');
var _log = require('./log');
(function () {
'use strict';

var Q = require('q');
var request = require('request');

var apiConfig = require('../../apiConfig.json');
var _log = require('./atajo.log').init('forkController');

/**
* This is the fallback error
* @type {String}
Expand All @@ -28,27 +28,35 @@
*/
var baseURL = apiConfig.REST_BASE_URL;

var makeRequest = function(options) {
var makeRequest = function (options) {
var deferred = Q.defer();
_log.d(" start handler web request via uri: " + options.uri);
request(options, function(error, response, body) {
request(options, function (error, response, body) {

if (!error) {
if (typeof body == 'object') {
if (typeof body === 'object') {
deferred.resolve(body);
} else {
deferred.resolve(JSON.parse(body));
}

} else {
_log.e("Request unsuccessfull: " + (error ? error : '') + " | status: " + (response ? response.statusCode : 'N/A'));
deferred.resolve({ error: true, message: unresolvedErrorMessage });
deferred.resolve({error: true, message: unresolvedErrorMessage});
}
});
return deferred.promise;
};

var post = function(urlPath, postData, params, heads) {
/**
* JSON based `POST` request
* @param {string} urlPath URL of web service
* @param {object} postData object with JSON payload
* @param {object} params HTTP query parameters
* @param {object} heads HTTP headers
* @return {promise} Promise with result of request
*/
var post = function (urlPath, postData, params, heads) {
var deferred = Q.defer();

params = params || {};
Expand All @@ -61,14 +69,21 @@
qs: params,
headers: heads
};
makeRequest(options).then(function(data) {
makeRequest(options).then(function (data) {
deferred.resolve(data);
});

return deferred.promise;
};

var get = function(urlPath, params, heads) {
/**
* JSON based `GET` request
* @param {string} urlPath URL of web service
* @param {object} params HTTP query parameters
* @param {object} heads HTTP headers
* @return {promise} Promise with result of request
*/
var get = function (urlPath, params, heads) {
var deferred = Q.defer();

params = params || {};
Expand All @@ -79,14 +94,22 @@
qs: params,
headers: heads
};
makeRequest(options).then(function(data) {
makeRequest(options).then(function (data) {
deferred.resolve(data);
});

return deferred.promise;
};

var put = function(urlPath, postData, params, heads) {
/**
* JSON based `PUT` request
* @param {string} urlPath URL of web service
* @param {object} postData object with JSON payload
* @param {object} params HTTP query parameters
* @param {object} heads HTTP headers
* @return {promise} Promise with result of request
*/
var put = function (urlPath, postData, params, heads) {
var deferred = Q.defer();

params = params || {};
Expand All @@ -99,14 +122,21 @@
qs: params,
headers: heads
};
makeRequest(options).then(function(data) {
makeRequest(options).then(function (data) {
deferred.resolve(data);
});

return deferred.promise;
};

var deleteReq = function(urlPath, params, heads) {
/**
* JSON based `DELETE` request
* @param {string} urlPath URL of web service
* @param {object} params HTTP query parameters
* @param {object} heads HTTP headers
* @return {promise} Promise with result of request
*/
var deleteReq = function (urlPath, params, heads) {
var deferred = Q.defer();

params = params || {};
Expand All @@ -117,7 +147,22 @@
qs: params,
headers: heads
};
makeRequest(options).then(function(data) {
makeRequest(options).then(function (data) {
deferred.resolve(data);
});

return deferred.promise;
};

/**
* Custom request using standard `request` options as they are
* @param {object} requestOptions `request` Object
* @return {promise} Promise with result of request
*/
var customReq = function (requestOptions) {
var deferred = Q.defer();

makeRequest(requestOptions).then(function (data) {
deferred.resolve(data);
});

Expand All @@ -128,6 +173,7 @@
post: post,
get: get,
put: put,
delete: deleteReq
delete: deleteReq,
customRequest: customReq
};
}());