ProjectResource.java
package info.textgrid.services.textapi;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.openapi.annotations.Operation;
import info.textgrid.namespaces.middleware.tgsearch.Response;
import info.textgrid.namespaces.middleware.tgsearch.portal.Project;
import info.textgrid.services.textapi.services.SearchClientService;
import io.quarkus.qute.Template;
import io.quarkus.qute.TemplateInstance;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
@Path("/textapi/project")
public class ProjectResource {
@Inject
SearchClientService searchClient;
@ConfigProperty(name = "textgrid.host")
String textgridHost;
@ConfigProperty(name = "service.url")
String serviceUrl;
@Inject
Template project;
@GET
@Produces(MediaType.TEXT_HTML)
@Path("/{projectId}")
@Operation(hidden = true) // hide operation from OpenAPI
public TemplateInstance index(String projectId) {
Project projectConf = searchClient.projectQuery().projectDetails(projectId);
Response res = searchClient.navigationQuery().listProject(projectId);
return project
.data("projectId", projectId)
.data("serviceUrl", serviceUrl)
.data("projectConf", projectConf)
.data("textgridHost", textgridHost)
.data("res", res);
}
}