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