From b67214f4d6eba45aa52f10591ff79c4fd24b13c2 Mon Sep 17 00:00:00 2001 From: litoral05 Date: Wed, 3 Jun 2026 10:22:41 +0100 Subject: [PATCH] Add admin client endpoints --- data/backend-gateway.db | Bin 28672 -> 28672 bytes .../client/ClientController.java | 28 +++++++++++ .../backend_gateway/client/ClientService.java | 45 ++++++++++++++++++ .../client/dto/ClientResponse.java | 10 ++++ .../client/dto/CreateClientRequest.java | 7 +++ 5 files changed, 90 insertions(+) create mode 100644 src/main/java/com/litoralregas/backend_gateway/client/ClientController.java create mode 100644 src/main/java/com/litoralregas/backend_gateway/client/ClientService.java create mode 100644 src/main/java/com/litoralregas/backend_gateway/client/dto/ClientResponse.java create mode 100644 src/main/java/com/litoralregas/backend_gateway/client/dto/CreateClientRequest.java diff --git a/data/backend-gateway.db b/data/backend-gateway.db index 093ae6a6f5a2f80c9df00e73771146500c4bef49..1aa166afcd9c3710ab7500ec152424be1410bd2e 100644 GIT binary patch delta 148 zcmZp8z}WDBae_1>^F$eEM&^wPOYGSg`HwR2AKfgdu$$l2l97!;-kQ@mCACa9CqFqc zC!?gKz)D}=&_K`70EqRBtPCwoObv_-jLdWmfXGxmgY>($xO{FDFy&(sU|-F delta 60 vcmZp8z}WDBae_1>(?l6(My8DkOYE5#1U3sQyyl-6z|Y3T00amwFA5g`_^%Ha diff --git a/src/main/java/com/litoralregas/backend_gateway/client/ClientController.java b/src/main/java/com/litoralregas/backend_gateway/client/ClientController.java new file mode 100644 index 0000000..d8cd31a --- /dev/null +++ b/src/main/java/com/litoralregas/backend_gateway/client/ClientController.java @@ -0,0 +1,28 @@ +package com.litoralregas.backend_gateway.client; + +import com.litoralregas.backend_gateway.client.dto.ClientResponse; +import com.litoralregas.backend_gateway.client.dto.CreateClientRequest; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/admin/clients") +public class ClientController { + + private final ClientService clientService; + + public ClientController(ClientService clientService) { + this.clientService = clientService; + } + + @PostMapping + public ClientResponse create(@RequestBody CreateClientRequest request) { + return clientService.create(request); + } + + @GetMapping + public List findAll() { + return clientService.findAll(); + } +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/backend_gateway/client/ClientService.java b/src/main/java/com/litoralregas/backend_gateway/client/ClientService.java new file mode 100644 index 0000000..b6cad0e --- /dev/null +++ b/src/main/java/com/litoralregas/backend_gateway/client/ClientService.java @@ -0,0 +1,45 @@ +package com.litoralregas.backend_gateway.client; + +import com.litoralregas.backend_gateway.client.dto.ClientResponse; +import com.litoralregas.backend_gateway.client.dto.CreateClientRequest; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ClientService { + + private final ClientRepository clientRepository; + + public ClientService(ClientRepository clientRepository) { + this.clientRepository = clientRepository; + } + + public ClientResponse create(CreateClientRequest request) { + ClientEntity client = new ClientEntity(); + client.setName(request.name()); + client.setBackendBaseUrl(request.backendBaseUrl()); + client.setEnabled(true); + + ClientEntity saved = clientRepository.save(client); + + return toResponse(saved); + } + + public List findAll() { + return clientRepository.findAll() + .stream() + .map(this::toResponse) + .toList(); + } + + private ClientResponse toResponse(ClientEntity client) { + return new ClientResponse( + client.getId(), + client.getName(), + client.getBackendBaseUrl(), + client.isEnabled(), + client.getCreatedAt() + ); + } +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/backend_gateway/client/dto/ClientResponse.java b/src/main/java/com/litoralregas/backend_gateway/client/dto/ClientResponse.java new file mode 100644 index 0000000..8ef8cb1 --- /dev/null +++ b/src/main/java/com/litoralregas/backend_gateway/client/dto/ClientResponse.java @@ -0,0 +1,10 @@ +package com.litoralregas.backend_gateway.client.dto; + +public record ClientResponse( + Long id, + String name, + String backendBaseUrl, + boolean enabled, + String createdAt +) { +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/backend_gateway/client/dto/CreateClientRequest.java b/src/main/java/com/litoralregas/backend_gateway/client/dto/CreateClientRequest.java new file mode 100644 index 0000000..a8d3e33 --- /dev/null +++ b/src/main/java/com/litoralregas/backend_gateway/client/dto/CreateClientRequest.java @@ -0,0 +1,7 @@ +package com.litoralregas.backend_gateway.client.dto; + +public record CreateClientRequest( + String name, + String backendBaseUrl +) { +} \ No newline at end of file