Skip to content

Commit 9808b0d

Browse files
committed
feat(eventbridge): make source required
1 parent b9f3044 commit 9808b0d

File tree

5 files changed

+32
-35
lines changed

5 files changed

+32
-35
lines changed

__tests__/integration/eventbridge/multiple-integrations/service/serverless.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,12 @@ custom:
3939
queryStringParam: mySourceKey
4040
eventBusName: { Ref: 'YourBus' }
4141
cors: true
42-
# set value of detailType and source to api event id by default
42+
# set value of detailType api event id by default
4343
- eventbridge:
4444
path: /eventbridge4
4545
method: post
4646
eventBusName: { Ref: 'YourBus' }
47+
source: mySourceName
4748
cors: true
4849

4950
resources:

__tests__/integration/eventbridge/single-integration/service/serverless.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ custom:
1515
path: /eventbridge
1616
method: post
1717
eventBusName: { Ref: 'YourBus' }
18+
source: mySourceName
1819
cors: true
1920

2021
resources:

lib/apiGateway/schema.js

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -180,23 +180,6 @@ const detailType = Joi.alternatives().try([
180180
)
181181
])
182182

183-
// EventBridge source parameter
184-
const source = Joi.alternatives().try([
185-
Joi.string(),
186-
Joi.object()
187-
.keys({
188-
pathParam: Joi.string(),
189-
queryStringParam: Joi.string()
190-
})
191-
.xor('pathParam', 'queryStringParam')
192-
.error(
193-
customErrorBuilder(
194-
'object.xor',
195-
'key must contain "pathParam" or "queryStringParam and only one'
196-
)
197-
)
198-
])
199-
200183
const request = Joi.object({
201184
template: Joi.object().required()
202185
})
@@ -253,7 +236,11 @@ const proxiesSchemas = {
253236
})
254237
}),
255238
eventbridge: Joi.object({
256-
eventbridge: proxy.append({ eventBusName: stringOrRef.required(), source, detailType })
239+
eventbridge: proxy.append({
240+
eventBusName: stringOrRef.required(),
241+
source: stringOrRef.required(),
242+
detailType
243+
})
257244
})
258245
}
259246

lib/package/eventbridge/compileMethodsToEventBridge.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ module.exports = {
111111

112112
getEventBridgeSource(http) {
113113
if (!_.has(http, 'source')) {
114-
return '$context.requestId'
114+
return ''
115115
}
116116

117117
if (http.source.pathParam) {

lib/package/eventbridge/compileMethodsToEventBridge.test.js

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe('#compileMethodsToEventBridge()', () => {
3232
serviceName: 'eventbridge',
3333
http: {
3434
eventBusName: 'myEventBusName',
35+
source: 'myEventSource',
3536
path: 'eventbridge',
3637
method: 'post',
3738
auth: {
@@ -83,7 +84,7 @@ describe('#compileMethodsToEventBridge()', () => {
8384
EventBusName: 'myEventBusName',
8485
Detail: '$util.escapeJavaScript($input.body)',
8586
DetailType: '$context.requestId',
86-
Source: '$context.requestId'
87+
Source: 'myEventSource'
8788
}
8889
]
8990
},
@@ -94,7 +95,7 @@ describe('#compileMethodsToEventBridge()', () => {
9495
EventBusName: 'myEventBusName',
9596
Detail: '$util.escapeJavaScript($input.body)',
9697
DetailType: '$context.requestId',
97-
Source: '$context.requestId'
98+
Source: 'myEventSource'
9899
}
99100
]
100101
}
@@ -137,6 +138,7 @@ describe('#compileMethodsToEventBridge()', () => {
137138
serviceName: 'eventbridge',
138139
http: {
139140
eventBusName: 'myEventBus',
141+
source: 'myEventSource',
140142
path: 'eventbridge',
141143
method: 'post',
142144
auth: {
@@ -202,7 +204,7 @@ describe('#compileMethodsToEventBridge()', () => {
202204
EventBusName: 'myEventBus',
203205
Detail: '$util.escapeJavaScript($input.body)',
204206
DetailType: '$context.requestId',
205-
Source: '$context.requestId'
207+
Source: 'myEventSource'
206208
}
207209
]
208210
},
@@ -213,7 +215,7 @@ describe('#compileMethodsToEventBridge()', () => {
213215
EventBusName: 'myEventBus',
214216
Detail: '$util.escapeJavaScript($input.body)',
215217
DetailType: '$context.requestId',
216-
Source: '$context.requestId'
218+
Source: 'myEventSource'
217219
}
218220
]
219221
}
@@ -268,6 +270,7 @@ describe('#compileMethodsToEventBridge()', () => {
268270
serviceName: 'eventbridge',
269271
http: {
270272
eventBusName: 'myEventBus',
273+
source: 'myEventSource',
271274
path: 'eventbridge',
272275
method: 'post',
273276
auth: {
@@ -320,7 +323,7 @@ describe('#compileMethodsToEventBridge()', () => {
320323
EventBusName: 'myEventBus',
321324
Detail: '$util.escapeJavaScript($input.body)',
322325
DetailType: '$context.requestId',
323-
Source: '$context.requestId'
326+
Source: 'myEventSource'
324327
}
325328
]
326329
},
@@ -331,7 +334,7 @@ describe('#compileMethodsToEventBridge()', () => {
331334
EventBusName: 'myEventBus',
332335
Detail: '$util.escapeJavaScript($input.body)',
333336
DetailType: '$context.requestId',
334-
Source: '$context.requestId'
337+
Source: 'myEventSource'
335338
}
336339
]
337340
}
@@ -379,10 +382,11 @@ describe('#compileMethodsToEventBridge()', () => {
379382
})
380383
})
381384

382-
it('should return the default template for application/json when defaultType and source are not given', () => {
385+
it('should return the default template for application/json when defaultType is not given', () => {
383386
const httpWithoutRequestTemplate = {
384387
path: 'foo/bar1',
385388
eventBusName: 'myEventBus',
389+
source: 'myEventSource',
386390
method: 'post',
387391
request: {
388392
template: {
@@ -406,7 +410,7 @@ describe('#compileMethodsToEventBridge()', () => {
406410
EventBusName: 'myEventBus',
407411
Detail: '$util.escapeJavaScript($input.body)',
408412
DetailType: '$context.requestId',
409-
Source: '$context.requestId'
413+
Source: 'myEventSource'
410414
}
411415
])
412416
})
@@ -477,11 +481,12 @@ describe('#compileMethodsToEventBridge()', () => {
477481
])
478482
})
479483

480-
it('should set source and detailType to empty strings when none is given', () => {
484+
it('should set source and detailType to empty strings when detailType is not given', () => {
481485
const httpWithoutRequestTemplate = {
482486
path: 'foo',
483487
method: 'post',
484488
eventBusName: 'eventBus',
489+
source: 'myEventSource',
485490
auth: {
486491
authorizationType: 'NONE'
487492
}
@@ -499,7 +504,7 @@ describe('#compileMethodsToEventBridge()', () => {
499504
EventBusName: 'eventBus',
500505
Detail: '$util.escapeJavaScript($input.body)',
501506
DetailType: '$context.requestId',
502-
Source: '$context.requestId'
507+
Source: 'myEventSource'
503508
}
504509
])
505510
})
@@ -557,6 +562,7 @@ describe('#compileMethodsToEventBridge()', () => {
557562
it('should return the default for application/x-www-form-urlencoded when one is given', () => {
558563
const httpWithoutRequestTemplate = {
559564
eventBusName: 'myEventBus',
565+
source: 'myEventSource',
560566
path: 'foo/bar1',
561567
method: 'post',
562568
request: {
@@ -581,7 +587,7 @@ describe('#compileMethodsToEventBridge()', () => {
581587
EventBusName: 'myEventBus',
582588
Detail: '$util.escapeJavaScript($input.body)',
583589
DetailType: '$context.requestId',
584-
Source: '$context.requestId'
590+
Source: 'myEventSource'
585591
}
586592
])
587593
})
@@ -643,6 +649,7 @@ describe('#compileMethodsToEventBridge()', () => {
643649
serviceName: 'eventbridge',
644650
http: {
645651
eventBusName: 'myEventBus',
652+
source: 'myEventSource',
646653
path: 'eventbridge',
647654
method: 'post',
648655
auth: {
@@ -695,7 +702,7 @@ describe('#compileMethodsToEventBridge()', () => {
695702
EventBusName: 'myEventBus',
696703
Detail: '$util.escapeJavaScript($input.body)',
697704
DetailType: '$context.requestId',
698-
Source: '$context.requestId'
705+
Source: 'myEventSource'
699706
}
700707
]
701708
},
@@ -706,7 +713,7 @@ describe('#compileMethodsToEventBridge()', () => {
706713
EventBusName: 'myEventBus',
707714
Detail: '$util.escapeJavaScript($input.body)',
708715
DetailType: '$context.requestId',
709-
Source: '$context.requestId'
716+
Source: 'myEventSource'
710717
}
711718
]
712719
}
@@ -749,6 +756,7 @@ describe('#compileMethodsToEventBridge()', () => {
749756
serviceName: 'eventbridge',
750757
http: {
751758
eventBusName: 'myEventBus',
759+
source: 'myEventSource',
752760
path: 'eventbridge',
753761
method: 'post',
754762
auth: {
@@ -801,7 +809,7 @@ describe('#compileMethodsToEventBridge()', () => {
801809
EventBusName: 'myEventBus',
802810
Detail: '$util.escapeJavaScript($input.body)',
803811
DetailType: '$context.requestId',
804-
Source: '$context.requestId'
812+
Source: 'myEventSource'
805813
}
806814
]
807815
},
@@ -812,7 +820,7 @@ describe('#compileMethodsToEventBridge()', () => {
812820
EventBusName: 'myEventBus',
813821
Detail: '$util.escapeJavaScript($input.body)',
814822
DetailType: '$context.requestId',
815-
Source: '$context.requestId'
823+
Source: 'myEventSource'
816824
}
817825
]
818826
}

0 commit comments

Comments
 (0)