File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed
src/main/kotlin/spp/protocol/service Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ import io.vertx.codegen.annotations.VertxGen
22
22
import io.vertx.core.Future
23
23
import io.vertx.core.Vertx
24
24
import io.vertx.core.eventbus.DeliveryOptions
25
+ import io.vertx.core.eventbus.ReplyException
25
26
import io.vertx.core.json.JsonObject
26
27
import spp.protocol.service.SourceServices.LIVE_VIEW
27
28
import spp.protocol.view.LiveView
@@ -51,6 +52,17 @@ interface LiveViewService {
51
52
fun saveRule (rule : LiveViewRule ): Future <LiveViewRule >
52
53
fun deleteRule (ruleName : String ): Future <LiveViewRule ?>
53
54
55
+ @GenIgnore
56
+ fun saveRuleIfAbsent (rule : LiveViewRule ): Future <LiveViewRule > {
57
+ return saveRule(rule).recover { error ->
58
+ if (error is ReplyException && error.failureCode() == 409 ) {
59
+ Future .succeededFuture(rule)
60
+ } else {
61
+ Future .failedFuture(error)
62
+ }
63
+ }
64
+ }
65
+
54
66
fun addLiveView (subscription : LiveView ): Future <LiveView >
55
67
fun updateLiveView (id : String , subscription : LiveView ): Future <LiveView >
56
68
fun removeLiveView (id : String ): Future <LiveView >
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Source++, the continuous feedback platform for developers.
3
+ * Copyright (C) 2022 CodeBrig, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ package spp.protocol.service.error
18
+
19
+ import io.vertx.serviceproxy.ServiceException
20
+ import spp.protocol.view.rule.LiveViewRule
21
+
22
+ /* *
23
+ * Thrown when attempting to save a [LiveViewRule] that already exists.
24
+ *
25
+ * @author [Brandon Fergerson](mailto:[email protected] )
26
+ */
27
+ class RuleAlreadyExistsException (message : String ) : ServiceException(409 , message)
You can’t perform that action at this time.
0 commit comments