Merge branch 'dmp-refactoring' of code-repo.d4science.org:MaDgiK-CITE/argos into dmp-refactoring

This commit is contained in:
Efstratios Giannopoulos 2023-10-16 17:39:19 +03:00
commit 6443654343
3 changed files with 11 additions and 39 deletions

View File

@ -49,6 +49,11 @@ public class DescriptionTemplateTypeService {
return builderFactory.builder(DescriptionTemplateTypeBuilder.class).build(lookup.getProject(), data);
}
public long count(DescriptionTemplateTypeLookup lookup) {
DescriptionTemplateTypeQuery query = lookup.enrich(queryFactory);
return query.count();
}
public DescriptionTemplateType get(UUID id) {
DescriptionTemplateTypeQuery query = applicationContext.getBean(DescriptionTemplateTypeQuery.class);

View File

@ -1,36 +0,0 @@
package eu.eudat.controllers.v2;
import eu.eudat.model.result.QueryResult;
import gr.cite.tools.data.query.Lookup;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Function;
public class BaseController {
public static <T, L extends Lookup> QueryResult<T> extractQueryResultWithCount(Function<L, List<T>> service, L lookup) {
return extractQueryResultWithCountWhen(service, lookup, null);
}
public static <T, L extends Lookup> QueryResult<T> extractQueryResultWithCountWhen(Function<L, List<T>> service, L lookup, Function<T, Boolean> when) {
List<T> result = service.apply(lookup);
lookup.setPage(null);
List<T> all = service.apply(lookup);
long count = all.size();
if (when == null) return new QueryResult<>(result, count);
long countOverride = count;
for (T item : all) {
if (!when.apply(item)) countOverride--;
}
return new QueryResult<>(result, count, countOverride);
}
public static <T, L extends Lookup> QueryResult<T> extractQueryResultWithCount(BiFunction<String, L, List<T>> service, String name, L lookup) {
List<T> result = service.apply(name, lookup);
lookup.setPage(null);
long count = service.apply(name, lookup).size();
return new QueryResult<>(result, count);
}
}

View File

@ -15,6 +15,7 @@ import gr.cite.tools.exception.MyNotFoundException;
import gr.cite.tools.fieldset.FieldSet;
import gr.cite.tools.logging.LoggerService;
import gr.cite.tools.logging.MapLogEntry;
import org.opensaml.xml.signature.Q;
import org.slf4j.LoggerFactory;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
@ -25,11 +26,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.AbstractMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import static eu.eudat.controllers.v2.BaseController.extractQueryResultWithCount;
@RestController
@CrossOrigin
@Transactional
@ -59,9 +59,12 @@ public class DescriptionTemplateTypeV2Controller {
censorFactory.censor(DescriptionTemplateTypeCensor.class).censor(lookup.getProject());
List<DescriptionTemplateType> models = descriptionTemplateTypeService.query(lookup);
long count = (lookup.getMetadata() != null && lookup.getMetadata().getCountAll()) ? descriptionTemplateTypeService.count(lookup) : models.size();
auditService.track(AuditableAction.DescriptionTemplateType_Query, "lookup", lookup);
return extractQueryResultWithCount(descriptionTemplateTypeService::query, lookup);
return new QueryResult<>(models, count);
}
@GetMapping("{id}")