Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe Commits: 636637d8 by Tony Chemit at 2021-05-20T13:45:52+02:00 Amélioration des paramètres de configuration des requêtes GET - Closes #1863 - - - - - 2 changed files: - server/core/src/main/java/fr/ird/observe/server/injector/JsonInjector.java - server/core/src/main/java/fr/ird/observe/server/injector/ObserveDtoInjector.java Changes: ===================================== server/core/src/main/java/fr/ird/observe/server/injector/JsonInjector.java ===================================== @@ -64,6 +64,9 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl Call.ParameterTree parameterTree; try { parameterTree = parameterTreeObject.get(name); + if (parameterTree == null) { + return buildNullValue(call, name, type, generic); + } Objects.requireNonNull(parameterTree); } catch (Exception e) { log.error(String.format("Could not get parameterTree for mapping: %s, call: %s - name: %s, type: %s", mapping, call, name, type), e); @@ -80,4 +83,8 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl return null; } + protected O buildNullValue(Call call, String name, Class<?> type, Type generic) { + throw new NullPointerException(String.format("By default do not accept null parameterTrees for parameter: %s with type: %s", name, type.getName())); + } + } ===================================== server/core/src/main/java/fr/ird/observe/server/injector/ObserveDtoInjector.java ===================================== @@ -25,6 +25,7 @@ package fr.ird.observe.server.injector; import com.google.gson.Gson; import com.google.gson.JsonParseException; import fr.ird.observe.dto.ObserveDto; +import fr.ird.observe.toolkit.navigation.tree.io.request.ToolkitRequestConfig; import io.ultreia.java4all.http.HRestClientService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -70,4 +71,11 @@ public class ObserveDtoInjector extends JsonInjector<ObserveDto> { return observeDto; } + @Override + protected ObserveDto buildNullValue(Call call, String name, Class<?> type, Type generic) { + if (ToolkitRequestConfig.class.isAssignableFrom(type)) { + return gson.fromJson("{}", generic); + } + return super.buildNullValue(call, name, type, generic); + } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/636637d8efa7e634340fe88355... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/636637d8efa7e634340fe88355... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)