- Remove the RolePlayApplication class as part of the restructuring. - Update pom.xml to include new dependencies for YAML configuration and H2 database support. - Modify API package imports in ModelResource, SessionResource, and TurnResource to use the generated API package. - Update application.yml to configure H2 datasource and enable Liquibase migrations at startup.
47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
package de.neitzel.roleplay.fascade;
|
|
|
|
import de.neitzel.roleplay.business.SessionService;
|
|
import de.neitzel.roleplay.fascade.model.TurnRequest;
|
|
import de.neitzel.roleplay.fascade.model.TurnResponse;
|
|
import de.neitzel.roleplay.generated.api.TurnsApi;
|
|
import jakarta.enterprise.context.ApplicationScoped;
|
|
import jakarta.inject.Inject;
|
|
import jakarta.ws.rs.NotFoundException;
|
|
|
|
/**
|
|
* JAX-RS resource that implements the {@link TurnsApi} interface generated
|
|
* from the OpenAPI specification. Delegates all business logic to
|
|
* {@link SessionService}.
|
|
*/
|
|
@ApplicationScoped
|
|
public class TurnResource implements TurnsApi {
|
|
|
|
/**
|
|
* Business service providing turn submission and processing.
|
|
*/
|
|
private final SessionService sessionService;
|
|
|
|
/**
|
|
* Creates a new {@code TurnResource}.
|
|
*
|
|
* @param sessionService the session management service
|
|
*/
|
|
@Inject
|
|
public TurnResource(final SessionService sessionService) {
|
|
this.sessionService = sessionService;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*
|
|
* <p>Returns 404 if the session is not found.
|
|
*/
|
|
@Override
|
|
public TurnResponse submitTurn(final String sessionId, final TurnRequest turnRequest) {
|
|
return sessionService.submitTurn(sessionId, turnRequest)
|
|
.orElseThrow(() -> new NotFoundException(
|
|
"No session found with id: " + sessionId));
|
|
}
|
|
}
|
|
|