A generic structured http emitter for reusable purposes
Signed-off-by: Fabio José <fabiojose@gmail.com>
This commit is contained in:
parent
d42efce9fc
commit
145bd2973f
|
@ -13,6 +13,7 @@ module.exports = {
|
||||||
HEADER_CONTENT_TYPE : "content-type",
|
HEADER_CONTENT_TYPE : "content-type",
|
||||||
|
|
||||||
DEFAULT_CONTENT_TYPE : "application/json; charset=utf-8",
|
DEFAULT_CONTENT_TYPE : "application/json; charset=utf-8",
|
||||||
|
DEFAULT_CE_CONTENT_TYPE : "application/cloudevents+json; charset=utf-8",
|
||||||
|
|
||||||
BINARY_HEADERS_02 : {
|
BINARY_HEADERS_02 : {
|
||||||
TYPE : "ce-type",
|
TYPE : "ce-type",
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
var axios = require("axios");
|
||||||
|
|
||||||
|
const Constants = require("./constants.js");
|
||||||
|
|
||||||
|
function StructuredHTTPEmitter(configuration){
|
||||||
|
this.config = JSON.parse(JSON.stringify(configuration));
|
||||||
|
|
||||||
|
this.config[Constants.HEADERS] =
|
||||||
|
(!this.config[Constants.HEADERS]
|
||||||
|
? {}
|
||||||
|
: this.config[Constants.HEADERS]);
|
||||||
|
|
||||||
|
if(!this.config[Constants.HEADERS][Constants.HEADER_CONTENT_TYPE]){
|
||||||
|
this.config[Constants.HEADERS][Constants.HEADER_CONTENT_TYPE] =
|
||||||
|
Constants.DEFAULT_CE_CONTENT_TYPE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StructuredHTTPEmitter.prototype.emit = function(cloudevent) {
|
||||||
|
// Create new request object
|
||||||
|
var _config = JSON.parse(JSON.stringify(this.config));
|
||||||
|
|
||||||
|
// Set the cloudevent payload
|
||||||
|
_config[Constants.DATA_ATTRIBUTE] = cloudevent.format();
|
||||||
|
|
||||||
|
// Return the Promise
|
||||||
|
return axios.request(_config);
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = StructuredHTTPEmitter;
|
|
@ -1,29 +1,13 @@
|
||||||
var axios = require("axios");
|
const StructuredHTTPEmitter = require("./emitter_structured.js");
|
||||||
|
|
||||||
const Constants = require("./constants.js");
|
const Constants = require("./constants.js");
|
||||||
|
|
||||||
function HTTPStructured(configuration){
|
function HTTPStructured(configuration){
|
||||||
this.config = JSON.parse(JSON.stringify(configuration));
|
this.emitter = new StructuredHTTPEmitter(configuration);
|
||||||
|
|
||||||
if(!this.config["headers"]){
|
|
||||||
this.config["headers"] = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
this.config["headers"]
|
|
||||||
[Constants.HEADER_CONTENT_TYPE] =
|
|
||||||
Constants.MIME_CE_JSON + "; charset=" + Constants.CHARSET_DEFAULT;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HTTPStructured.prototype.emit = function(cloudevent){
|
HTTPStructured.prototype.emit = function(cloudevent){
|
||||||
|
return this.emitter.emit(cloudevent);
|
||||||
// Create new request object
|
|
||||||
var _config = JSON.parse(JSON.stringify(this.config));
|
|
||||||
|
|
||||||
// Set the cloudevent payload
|
|
||||||
_config["data"] = cloudevent.format();
|
|
||||||
|
|
||||||
// Return the Promise
|
|
||||||
return axios.request(_config);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = HTTPStructured;
|
module.exports = HTTPStructured;
|
||||||
|
|
Loading…
Reference in New Issue