View Javadoc
1   package de.dlr.shepard.common.search.services;
2   
3   import de.dlr.shepard.auth.users.entities.User;
4   import de.dlr.shepard.auth.users.services.UserService;
5   import de.dlr.shepard.common.search.daos.SearchDAO;
6   import de.dlr.shepard.common.search.io.TimeseriesSearchBody;
7   import de.dlr.shepard.common.search.io.TimeseriesSearchResult;
8   import de.dlr.shepard.common.search.query.TimeseriesInContainerQueryBuilder;
9   import de.dlr.shepard.data.timeseries.io.TimeseriesIO;
10  import jakarta.enterprise.context.RequestScoped;
11  import jakarta.inject.Inject;
12  
13  @RequestScoped
14  public class TimeseriesSearchService {
15  
16    @Inject
17    UserService userService;
18  
19    @Inject
20    SearchDAO searchDAO;
21  
22    public TimeseriesSearchResult search(Long containerId, TimeseriesSearchBody timeseriesSearchBody) {
23      User user = userService.getCurrentUser();
24      String jsonQuery = timeseriesSearchBody.getSearchParams().getQuery();
25      String query = TimeseriesInContainerQueryBuilder.searchTimeseriesInContainerQuery(
26        containerId,
27        jsonQuery,
28        user.getUsername()
29      );
30      TimeseriesIO[] timeseriesIO = searchDAO.findTimeseries(query).map(TimeseriesIO::new).toArray(TimeseriesIO[]::new);
31      return new TimeseriesSearchResult(timeseriesIO, timeseriesSearchBody.getSearchParams());
32    }
33  }