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", | ||||
| 
 | ||||
|   DEFAULT_CONTENT_TYPE : "application/json; charset=utf-8", | ||||
|   DEFAULT_CE_CONTENT_TYPE : "application/cloudevents+json; charset=utf-8", | ||||
| 
 | ||||
|   BINARY_HEADERS_02 : { | ||||
|     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"); | ||||
| 
 | ||||
| function HTTPStructured(configuration){ | ||||
|   this.config = JSON.parse(JSON.stringify(configuration)); | ||||
| 
 | ||||
|   if(!this.config["headers"]){ | ||||
|     this.config["headers"] = {}; | ||||
|   } | ||||
| 
 | ||||
|   this.config["headers"] | ||||
|     [Constants.HEADER_CONTENT_TYPE] = | ||||
|       Constants.MIME_CE_JSON + "; charset=" + Constants.CHARSET_DEFAULT; | ||||
|   this.emitter = new StructuredHTTPEmitter(configuration); | ||||
| } | ||||
| 
 | ||||
| HTTPStructured.prototype.emit = function(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); | ||||
|   return this.emitter.emit(cloudevent); | ||||
| }; | ||||
| 
 | ||||
| module.exports = HTTPStructured; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue