xref: /OpenGrok/plugins/src/main/java/opengrok/auth/plugin/util/WebHook.java (revision 0ec550ccbbcccee5cc0a7caf1de73b7f1c4f3887)
1b28a5538SAdam Hornacek /*
2b28a5538SAdam Hornacek  * CDDL HEADER START
3b28a5538SAdam Hornacek  *
4b28a5538SAdam Hornacek  * The contents of this file are subject to the terms of the
5b28a5538SAdam Hornacek  * Common Development and Distribution License (the "License").
6b28a5538SAdam Hornacek  * You may not use this file except in compliance with the License.
7b28a5538SAdam Hornacek  *
8b28a5538SAdam Hornacek  * See LICENSE.txt included in this distribution for the specific
9b28a5538SAdam Hornacek  * language governing permissions and limitations under the License.
10b28a5538SAdam Hornacek  *
11b28a5538SAdam Hornacek  * When distributing Covered Code, include this CDDL HEADER in each
12b28a5538SAdam Hornacek  * file and include the License file at LICENSE.txt.
13b28a5538SAdam Hornacek  * If applicable, add the following below this CDDL HEADER, with the
14b28a5538SAdam Hornacek  * fields enclosed by brackets "[]" replaced with your own identifying
15b28a5538SAdam Hornacek  * information: Portions Copyright [yyyy] [name of copyright owner]
16b28a5538SAdam Hornacek  *
17b28a5538SAdam Hornacek  * CDDL HEADER END
18b28a5538SAdam Hornacek  */
19b28a5538SAdam Hornacek 
20b28a5538SAdam Hornacek /*
21*0ec550ccSAdam Hornacek  * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved.
22b28a5538SAdam Hornacek  */
23b28a5538SAdam Hornacek package opengrok.auth.plugin.util;
24b28a5538SAdam Hornacek 
25b28a5538SAdam Hornacek import java.io.Serializable;
26b28a5538SAdam Hornacek import java.util.concurrent.CompletableFuture;
27b28a5538SAdam Hornacek import java.util.concurrent.Executors;
28b28a5538SAdam Hornacek import java.util.concurrent.Future;
29b28a5538SAdam Hornacek 
30b28a5538SAdam Hornacek public class WebHook implements Serializable {
31b28a5538SAdam Hornacek     private static final long serialVersionUID = -1;
32b28a5538SAdam Hornacek 
33b28a5538SAdam Hornacek     private String URI;
34b28a5538SAdam Hornacek     private String content;
35b28a5538SAdam Hornacek 
WebHook()36b28a5538SAdam Hornacek     public WebHook() {
37b28a5538SAdam Hornacek     }
38b28a5538SAdam Hornacek 
WebHook(String uri, String content)39*0ec550ccSAdam Hornacek     WebHook(String uri, String content) {
40*0ec550ccSAdam Hornacek         this.URI = uri;
41b28a5538SAdam Hornacek         this.content = content;
42b28a5538SAdam Hornacek     }
43b28a5538SAdam Hornacek 
setURI(String uri)44*0ec550ccSAdam Hornacek     public void setURI(String uri) {
45*0ec550ccSAdam Hornacek         this.URI = uri;
46ff44f24aSAdam Hornáček     }
getURI()47ff44f24aSAdam Hornáček     public String getURI() {
48ff44f24aSAdam Hornáček         return URI;
49ff44f24aSAdam Hornáček     }
50b28a5538SAdam Hornacek 
setContent(String content)51ff44f24aSAdam Hornáček     public void setContent(String content) {
52ff44f24aSAdam Hornáček         this.content = content;
53ff44f24aSAdam Hornáček     }
getContent()54ff44f24aSAdam Hornáček     public String getContent() {
55ff44f24aSAdam Hornáček         return content;
56ff44f24aSAdam Hornáček     }
57b28a5538SAdam Hornacek 
post()58b28a5538SAdam Hornacek     public Future<String> post() {
59b28a5538SAdam Hornacek         CompletableFuture<String> completableFuture
60b28a5538SAdam Hornacek                 = new CompletableFuture<>();
61b28a5538SAdam Hornacek 
62b28a5538SAdam Hornacek         Executors.newCachedThreadPool().submit(() -> {
63b28a5538SAdam Hornacek             int status = RestfulClient.postIt(getURI(), getContent());
64b28a5538SAdam Hornacek             completableFuture.complete(String.valueOf(status));
65b28a5538SAdam Hornacek             return null;
66b28a5538SAdam Hornacek         });
67b28a5538SAdam Hornacek 
68b28a5538SAdam Hornacek         return completableFuture;
69b28a5538SAdam Hornacek     }
70b28a5538SAdam Hornacek }
71