Implement clients API

This commit is contained in:
Paul-Henri Froidmont 2025-03-03 00:24:13 +01:00
parent 91584c18d5
commit 31014d1a0c
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
14 changed files with 474 additions and 228 deletions

View file

@ -15,8 +15,25 @@ import java.net.URI
import java.time.LocalDate
import java.util.UUID
object App extends ZIOAppDefault:
val openAPI = OpenAPIGen.fromEndpoints(ClientController.endpoints)
val routes = ClientController.routes ++ SwaggerUI.routes("docs" / "openapi", openAPI)
object HttpServer:
def routes =
for
client <- ZIO.service[ClientController]
openAPI = OpenAPIGen.fromEndpoints(client.endpoints)
yield client.routes @@ Middleware.debug ++ SwaggerUI.routes("docs" / "openapi", openAPI)
override def run = Server.serve(routes).provide(Server.default)
object App extends ZIOAppDefault:
val app =
for
routes <- HttpServer.routes
server <- Server.serve(routes).provide(Server.default)
yield server
override def run = app.provide(
CommandEngine.layer[ClientCommand, ClientEvent, ClientState],
ClientHandlers.layer,
ClientReducer.layer,
ClientEventRepositoryInMemory.layer,
ClientStateRepositoryInMemory.layer,
ClientController.layer
)