TimeseriesSearchService.java
package de.dlr.shepard.common.search.services;
import de.dlr.shepard.auth.users.entities.User;
import de.dlr.shepard.auth.users.services.UserService;
import de.dlr.shepard.common.search.daos.SearchDAO;
import de.dlr.shepard.common.search.io.TimeseriesSearchBody;
import de.dlr.shepard.common.search.io.TimeseriesSearchResult;
import de.dlr.shepard.common.search.query.TimeseriesInContainerQueryBuilder;
import de.dlr.shepard.data.timeseries.io.TimeseriesIO;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Inject;
@RequestScoped
public class TimeseriesSearchService {
@Inject
UserService userService;
@Inject
SearchDAO searchDAO;
public TimeseriesSearchResult search(Long containerId, TimeseriesSearchBody timeseriesSearchBody) {
User user = userService.getCurrentUser();
String jsonQuery = timeseriesSearchBody.getSearchParams().getQuery();
String query = TimeseriesInContainerQueryBuilder.searchTimeseriesInContainerQuery(
containerId,
jsonQuery,
user.getUsername()
);
TimeseriesIO[] timeseriesIO = searchDAO.findTimeseries(query).map(TimeseriesIO::new).toArray(TimeseriesIO[]::new);
return new TimeseriesSearchResult(timeseriesIO, timeseriesSearchBody.getSearchParams());
}
}