Add fields API
Some checks failed
Maven build / build (push) Failing after 1m14s

This commit is contained in:
Guillaume Dugas
2026-02-17 16:19:33 +01:00
parent def2e4140f
commit cdbe2dfd67
57 changed files with 537 additions and 497 deletions

View File

@@ -1,9 +1,9 @@
package fr.codeanddata.semrack.index.postgres;
import fr.codeanddata.semrack.core.SemdocIndex;
import fr.codeanddata.semrack.core.SemdocStorage;
import fr.codeanddata.semrack.core.Index;
import fr.codeanddata.semrack.core.Storage;
import fr.codeanddata.semrack.core.models.*;
import fr.codeanddata.semrack.core.services.SemrackLookupService;
import fr.codeanddata.semrack.core.services.LookupService;
import fr.codeanddata.semrack.core.utils.Traverser;
import fr.codeanddata.semrack.index.postgres.dtos.IndexEntry;
import fr.codeanddata.semrack.index.postgres.entities.SemrackIndexEntity;
@@ -19,23 +19,23 @@ import org.hibernate.query.Page;
import java.util.*;
@ApplicationScoped
public class SemdocJpaIndex implements SemdocIndex, PanacheRepository<SemrackIndexEntity> {
public class JpaIndex implements Index, PanacheRepository<SemrackIndexEntity> {
@Inject
Traverser traverser;
@Inject
SemrackLookupService lookupService;
LookupService lookupService;
@Inject
SemdocStorage storage;
Storage storage;
@Inject
SemrackIndexRepository indexRepository;
@Override
@WithSession
public Uni<Long> count(SearchRequest request) {
public Uni<Long> count(Search request) {
final StringBuilder query = new StringBuilder("SELECT DISTINCT count(uid) FROM semrack_index");
final String lookup = lookupService.lookup(request.getFilter());
@@ -47,14 +47,16 @@ public class SemdocJpaIndex implements SemdocIndex, PanacheRepository<SemrackInd
}
@Override
public Uni<Boolean> exist(SearchRequest query) {
public Uni<Boolean> exist(Search query) {
return count(query).map(count -> count > 0);
}
@Override
@WithTransaction
public Uni<Void> index(String documentId) {
return storage.get(documentId)
return storage.get(documentId, StorageGet.builder()
.metadataSource(true)
.build())
.call(document -> clear(documentId))
.call(document -> {
final Map<String, IndexEntry> indexes = new HashMap<>();
@@ -78,7 +80,7 @@ public class SemdocJpaIndex implements SemdocIndex, PanacheRepository<SemrackInd
@Override
@WithSession
public Uni<IndexSearchResult> search(SearchRequest request) {
public Uni<IndexSearchResult> search(Search request) {
final IndexSearchResult result = new IndexSearchResult();
final StringBuilder query = new StringBuilder("SELECT DISTINCT uid FROM semrack_index");
@@ -105,11 +107,11 @@ public class SemdocJpaIndex implements SemdocIndex, PanacheRepository<SemrackInd
.replaceWithVoid();
}
Uni<PaginationInfo> queryPaginationInfo(SearchRequest query) {
Uni<PaginationInfo> queryPaginationInfo(Search query) {
return count(query)
.map(count -> PaginationInfo.builder()
.page(Optional.ofNullable(query.getPaginate()).map(SemrackPagination::getPage).orElse(0))
.size(Optional.ofNullable(query.getPaginate()).map(SemrackPagination::getSize).orElse(10))
.page(Optional.ofNullable(query.getPaginate()).map(Pagination::getPage).orElse(0))
.size(Optional.ofNullable(query.getPaginate()).map(Pagination::getSize).orElse(10))
.total(count)
.build());
}

View File

@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.index.postgres.operators;
import fr.codeanddata.semrack.core.services.SemrackLookupService;
import fr.codeanddata.semrack.core.services.LookupService;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@@ -10,10 +10,10 @@ import java.util.Map;
@Identifier("and")
@ApplicationScoped
public class AndLookup implements SemrackJpaLookupExpression<List<Map<String, Object>>> {
public class AndLookup implements JpaLookupExpression<List<Map<String, Object>>> {
@Inject
SemrackLookupService lookupService;
LookupService lookupService;
@Override
public String apply(Object expressions) {

View File

@@ -10,7 +10,7 @@ import jakarta.inject.Inject;
@Identifier("equal")
@ApplicationScoped
public class EqualLookup implements SemrackJpaLookupExpression<EqualLookupParams> {
public class EqualLookup implements JpaLookupExpression<EqualLookupParams> {
@Inject
ObjectMapper objectMapper;

View File

@@ -13,7 +13,7 @@ import java.util.List;
@Identifier("in")
@ApplicationScoped
public class InLookup implements SemrackJpaLookupExpression<InLookupParams> {
public class InLookup implements JpaLookupExpression<InLookupParams> {
@Inject
ObjectMapper objectMapper;

View File

@@ -0,0 +1,6 @@
package fr.codeanddata.semrack.index.postgres.operators;
import fr.codeanddata.semrack.core.LookupExpression;
public interface JpaLookupExpression<T> extends LookupExpression<T> {
}

View File

@@ -1,6 +1,6 @@
package fr.codeanddata.semrack.index.postgres.operators;
import fr.codeanddata.semrack.core.services.SemrackLookupService;
import fr.codeanddata.semrack.core.services.LookupService;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@@ -10,10 +10,10 @@ import java.util.Map;
@Identifier("or")
@ApplicationScoped
public class OrLookup implements SemrackJpaLookupExpression<List<Map<String, Object>>> {
public class OrLookup implements JpaLookupExpression<List<Map<String, Object>>> {
@Inject
SemrackLookupService lookupService;
LookupService lookupService;
@Override
public String apply(Object expressions) {

View File

@@ -1,6 +0,0 @@
package fr.codeanddata.semrack.index.postgres.operators;
import fr.codeanddata.semrack.core.SemrackLookupExpression;
public interface SemrackJpaLookupExpression<T> extends SemrackLookupExpression<T> {
}