domotz-remote-pawn
Version:
Domotz Agent
53 lines (43 loc) • 1.48 kB
JavaScript
/** This file is part of Domotz Agent.
* Copyright (C) 2016 Domotz Ltd
*
* Domotz Agent is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Domotz Agent is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Domotz Agent. If not, see <http://www.gnu.org/licenses/>.
**/
var request_retry = require('requestretry');
const METHOD_TO_REQUEST_MAP = {
POST: "post",
post: "post",
GET: "get",
get: "get",
PUT: "put",
put: "put",
DELETE: "del",
delete: "del",
HEAD: "head",
head: "head",
PATCH: "patch",
patch: "patch"
};
function Request(options, callback) {
options.maxAttempts = options.maxAttempts || 1;
return request_retry(options, callback);
}
Object.keys(METHOD_TO_REQUEST_MAP).forEach(function(method) {
Request[METHOD_TO_REQUEST_MAP[method]] = function (options, callback) {
options.method = method;
return request_retry(options, callback);
};
});
Request.METHOD_TO_REQUEST_MAP = METHOD_TO_REQUEST_MAP;
module.exports = Request;