@@ -16,25 +16,40 @@ HTTPBinary.prototype.emit = function(cloudevent){
16
16
// Always set stuff in _config
17
17
var _headers = _config [ "headers" ] ;
18
18
19
+ // OPTIONAL CONTENT TYPE ATTRIBUTE
19
20
if ( cloudevent . getContenttype ( ) ) {
20
21
_headers [ "Content-Type" ] = cloudevent . getContenttype ( ) ;
21
22
}
22
23
24
+ // REQUIRED ATTRIBUTES
23
25
_headers [ "CE-EventType" ] = cloudevent . getType ( ) ;
24
- if ( cloudevent . getEventTypeVersion ( ) ) {
25
- _headers [ "CE-EventTypeVersion" ] = cloudevent . getEventTypeVersion ( ) ;
26
- }
27
26
_headers [ "CE-CloudEventsVersion" ] = cloudevent . getSpecversion ( ) ;
28
27
_headers [ "CE-Source" ] = cloudevent . getSource ( ) ;
29
28
_headers [ "CE-EventID" ] = cloudevent . getId ( ) ;
29
+
30
+ // OPTIONAL ATTRIBUTES
31
+ if ( cloudevent . getEventTypeVersion ( ) ) {
32
+ _headers [ "CE-EventTypeVersion" ] = cloudevent . getEventTypeVersion ( ) ;
33
+ }
30
34
if ( cloudevent . getTime ( ) ) {
31
35
_headers [ "CE-EventTime" ] = cloudevent . getTime ( ) ;
32
36
}
33
- _headers [ "CE-SchemaURL" ] = cloudevent . getSchemaurl ( ) ;
37
+ if ( cloudevent . getSchemaurl ( ) ) {
38
+ _headers [ "CE-SchemaURL" ] = cloudevent . getSchemaurl ( ) ;
39
+ }
34
40
35
41
// Set the cloudevent payload
36
42
_config [ "data" ] = cloudevent . format ( ) . data ;
37
43
44
+ // EXTENSION CONTEXT ATTRIBUTES
45
+ var exts = cloudevent . getExtensions ( ) ;
46
+ for ( var ext in exts ) {
47
+ if ( { } . hasOwnProperty . call ( exts , ext ) ) {
48
+ let capsExt = ext . charAt ( 0 ) . toUpperCase ( ) + ext . slice ( 1 )
49
+ _headers [ "CE-X-" + capsExt ] = exts [ ext ] ;
50
+ }
51
+ }
52
+
38
53
// Return the Promise
39
54
return axios . request ( _config ) ;
40
55
} ;
0 commit comments