diff --git a/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java new file mode 100644 index 0000000..418aa2a --- /dev/null +++ b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java @@ -0,0 +1,20 @@ +package com.litoralregas.openvpn.openvpn; + +import com.litoralregas.openvpn.ssh.SshCommandResult; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/openvpn") +public class OpenVpnController { + + private final OpenVpnService service; + + public OpenVpnController(OpenVpnService service) { + this.service = service; + } + + @GetMapping("/clients") + public SshCommandResult getClients() { + return service.listClients(); + } +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java new file mode 100644 index 0000000..9de848c --- /dev/null +++ b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java @@ -0,0 +1,23 @@ +package com.litoralregas.openvpn.openvpn; + +import com.litoralregas.openvpn.ssh.SshCommandResult; +import com.litoralregas.openvpn.ssh.SshService; +import org.springframework.stereotype.Service; + +@Service +public class OpenVpnService { + + private static final String TOOLS_PATH = "/var/litoral_regas_openvpn/tools"; + + private final SshService sshService; + + public OpenVpnService(SshService sshService) { + this.sshService = sshService; + } + + public SshCommandResult listClients() { + return sshService.executeOnConfiguredVps( + TOOLS_PATH + "/list-clients.sh" + ); + } +} \ No newline at end of file