Konrad Neitzel ffb97f6b8e Refactor RolePlay application structure and enhance configuration
- 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.
2026-02-20 20:01:19 +01:00

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));
}
}