@@ -29,23 +29,34 @@ import za.co.absa.statusboard.model.{ErrorResponse, RawStatus, RefinedStatus, Se
29
29
import za .co .absa .statusboard .model .ApiResponse .{MultiApiResponse , SingleApiResponse }
30
30
31
31
object Endpoints {
32
+ implicit class NoCachePublicEndpoint [I , E , O , R ](endpoint : PublicEndpoint [I , E , O , R ]) {
33
+ def noCache : PublicEndpoint [I , E , O , R ] =
34
+ endpoint
35
+ .out(header(" Cache-Control" , " no-cache, no-store, must-revalidate" ))
36
+ .out(header(" Pragma" , " no-cache" ))
37
+ .out(header(" Expires" , " 0" ))
38
+ }
39
+
32
40
val zioMetrics : PublicEndpoint [Unit , Unit , String , Any ] = endpoint
33
41
.get
34
42
.in(ZioMetrics )
35
43
.out(stringBody)
36
44
.out(statusCode(StatusCode .Ok ))
45
+ .noCache
37
46
38
47
val health : PublicEndpoint [Unit , Unit , String , Any ] = endpoint
39
48
.get
40
49
.in(Health )
41
50
.out(stringBody)
42
51
.out(statusCode(StatusCode .Ok ))
52
+ .noCache
43
53
44
54
val getServiceConfigurations : PublicEndpoint [Option [Boolean ], ErrorResponse , MultiApiResponse [ServiceConfiguration ], Any ] = endpoint
45
55
.get
46
56
.in(Api / V1 / Configurations ).in(query[Option [Boolean ]](IncludeHidden ))
47
57
.out(jsonBody[MultiApiResponse [ServiceConfiguration ]])
48
58
.out(statusCode(StatusCode .Ok ))
59
+ .noCache
49
60
.errorOut(
50
61
oneOf[ErrorResponse ](
51
62
badRequest,
@@ -58,6 +69,7 @@ object Endpoints {
58
69
.in(Api / V1 / Configurations / path[String ](Environment ) / path[String ](ServiceName ))
59
70
.out(jsonBody[SingleApiResponse [ServiceConfiguration ]])
60
71
.out(statusCode(StatusCode .Ok ))
72
+ .noCache
61
73
.errorOut(
62
74
oneOf[ErrorResponse ](
63
75
badRequest,
@@ -71,6 +83,7 @@ object Endpoints {
71
83
.in(Api / V1 / Configurations / path[String ](Environment ) / path[String ](ServiceName ) / Dependencies )
72
84
.out(jsonBody[MultiApiResponse [ServiceConfigurationReference ]])
73
85
.out(statusCode(StatusCode .Ok ))
86
+ .noCache
74
87
.errorOut(
75
88
oneOf[ErrorResponse ](
76
89
badRequest,
@@ -84,6 +97,7 @@ object Endpoints {
84
97
.in(Api / V1 / Configurations / path[String ](Environment ) / path[String ](ServiceName ) / Dependents )
85
98
.out(jsonBody[MultiApiResponse [ServiceConfigurationReference ]])
86
99
.out(statusCode(StatusCode .Ok ))
100
+ .noCache
87
101
.errorOut(
88
102
oneOf[ErrorResponse ](
89
103
badRequest,
@@ -200,6 +214,7 @@ object Endpoints {
200
214
.in(Api / V1 / Statuses / path[String ](Environment ) / path[String ](ServiceName ) / Latest )
201
215
.out(jsonBody[SingleApiResponse [RefinedStatus ]])
202
216
.out(statusCode(StatusCode .Ok ))
217
+ .noCache
203
218
.errorOut(
204
219
oneOf[ErrorResponse ](
205
220
badRequest,
@@ -213,6 +228,7 @@ object Endpoints {
213
228
.in(Api / V1 / Statuses / path[String ](Environment ) / path[String ](ServiceName ))
214
229
.out(jsonBody[MultiApiResponse [RefinedStatus ]])
215
230
.out(statusCode(StatusCode .Ok ))
231
+ .noCache
216
232
.errorOut(
217
233
oneOf[ErrorResponse ](
218
234
badRequest,
@@ -225,6 +241,7 @@ object Endpoints {
225
241
.in(Api / V1 / Statuses )
226
242
.out(jsonBody[MultiApiResponse [RefinedStatus ]])
227
243
.out(statusCode(StatusCode .Ok ))
244
+ .noCache
228
245
.errorOut(
229
246
oneOf[ErrorResponse ](
230
247
badRequest,
0 commit comments