-
Notifications
You must be signed in to change notification settings - Fork 69
/
replier_options.go
94 lines (80 loc) · 3 KB
/
replier_options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
Copyright 2022 TriggerMesh Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package cloudevents
// ReplierOption modifies a newly created replier.
type ReplierOption func(*Replier) error
// ReplierWithPayloadPolicy option avoids returning events.
func ReplierWithPayloadPolicy(policy PayloadPolicy) ReplierOption {
return func(c *Replier) error {
c.payloadPolicy = policy
return nil
}
}
// ReplierWithStaticResponseType option uses a static string for response type.
func ReplierWithStaticResponseType(resType string) ReplierOption {
return func(c *Replier) error {
c.responseType = StaticResponse(resType)
return nil
}
}
// ReplierWithMappedResponseType option uses a map string to look up response type.
func ReplierWithMappedResponseType(resTypes map[string]string) ReplierOption {
return func(c *Replier) error {
c.responseType = MappedResponseType(resTypes)
return nil
}
}
// ReplierWithStaticErrorResponseType option uses a static string for error response type.
func ReplierWithStaticErrorResponseType(resType string) ReplierOption {
return func(c *Replier) error {
c.responseErrorType = StaticResponse(resType)
return nil
}
}
// ReplierWithMappedErrorResponseType option uses a map string to look up for error response type.
func ReplierWithMappedErrorResponseType(resTypes map[string]string) ReplierOption {
return func(c *Replier) error {
c.responseErrorType = MappedResponseType(resTypes)
return nil
}
}
// ReplierWithStatefulHeaders adds response option to create stateful headers if not present.
func ReplierWithStatefulHeaders(bridge string) ReplierOption {
return func(c *Replier) error {
if bridge != "" {
c.responseOptions = append(c.responseOptions, ResponseWithStatefulHeaders(bridge))
}
return nil
}
}
// ReplierWithProcessedHeaders adds response option to create processed headers.
func ReplierWithProcessedHeaders() ReplierOption {
return func(c *Replier) error {
c.responseOptions = append(c.responseOptions, ResponseWithProcessedHeaders())
return nil
}
}
// ReplierWithStaticDataContentType sets the response content type for all replies.
func ReplierWithStaticDataContentType(contentType string) ReplierOption {
return func(c *Replier) error {
c.responseContentType = StaticResponse(contentType)
return nil
}
}
// ReplierWithStaticErrorDataContentType sets the response content type for error replies.
func ReplierWithStaticErrorDataContentType(contentType string) ReplierOption {
return func(c *Replier) error {
c.responseErrorContentType = StaticResponse(contentType)
return nil
}
}