diff --git a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java index ef47104..21f26d7 100644 --- a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -34,7 +34,10 @@ import com.nttdata.calender.packageType.PackageType; import com.nttdata.calender.planTimes.CalendarWeek; import com.nttdata.calender.planTimes.PlanTimes; import com.nttdata.calender.planTimes.PlanTimesRequest; +import com.nttdata.calender.presets.Preset; import com.nttdata.calender.presets.Presets; +import com.nttdata.calender.presets.PresetsGetResponse; +import com.nttdata.calender.presets.UserPreferences; import com.nttdata.calender.states.State; import com.nttdata.calender.states.StateChange; import com.nttdata.calender.states.StateChangeRequest; @@ -298,10 +301,9 @@ public class KalenderRestController { @CrossOrigin("*") @GetMapping("api/initPresets") @ResponseBody - public Object initPresets() throws ARException { - Presets presets = new Presets(); - presets.getPresets(); - return null; + public PresetsGetResponse initPresets() throws ARException, NotFoundError { + Presets presets = new Presets(javaAPI); + return presets.initPresets(); } diff --git a/backend/src/main/java/com/nttdata/calender/presets/Preset.java b/backend/src/main/java/com/nttdata/calender/presets/Preset.java index 98eeb21..f848892 100644 --- a/backend/src/main/java/com/nttdata/calender/presets/Preset.java +++ b/backend/src/main/java/com/nttdata/calender/presets/Preset.java @@ -6,6 +6,13 @@ public class Preset { private String definition; private String presetType; + public Preset(String id, String name, String definition, String presetType) { + this.id = id; + this.name = name; + this.definition = definition; + this.presetType = presetType; + } + public String getId() { return this.id; } diff --git a/backend/src/main/java/com/nttdata/calender/presets/Presets.java b/backend/src/main/java/com/nttdata/calender/presets/Presets.java index 90f3b89..17d2c6c 100644 --- a/backend/src/main/java/com/nttdata/calender/presets/Presets.java +++ b/backend/src/main/java/com/nttdata/calender/presets/Presets.java @@ -7,34 +7,74 @@ import com.bmc.arsys.api.ARException; import com.bmc.arsys.api.Entry; import com.nttdata.calender.api.Query; import com.nttdata.calender.api.RemedyJavaAPI; +import com.nttdata.calender.errorhandling.ErrorTypes.NotFoundError; public class Presets { private final static String formName = "ASF:CHG_CAL_UserPreferencesJoinFilterDefinitions"; + private final static String formDefault = "ASF:CHG_CAL_FilterDefinitions"; private Query query; + private Query defQuery; private RemedyJavaAPI api; + private List presets; + + public Presets(RemedyJavaAPI api) throws ARException, NotFoundError { + this.api = api; - public Presets() { this.query = new Query.QueryBuilder(formName) .addFieldId("RequestId", 6) .addFieldId("InstanceId", 179) .addFieldId("Status", 7) .addFieldId("GUID", 364000001) // current active preset - .addFieldId("Details", 0) - .addFieldId("View", 0) - .addFieldId("Language", 0) - .addFieldId("Submitter", 0) + .addFieldId("Details", 364000002) + .addFieldId("View", 364000003) + .addFieldId("Language", 364000004) + .addFieldId("Submitter", 2) .addFieldId("Name", 364200001) .addFieldId("Definition", 364200002) .build(); + + this.defQuery = new Query.QueryBuilder(formDefault) + .addFieldId("Name", 364000001) + .addFieldId("Definition", 364000002) + .addFieldId("isSystemDefault", 364000004) + .addFieldId("isGlobal", 364000003) + .addFieldId("InstanceId", 179) + .build(); + + this.presets = new ArrayList<>(); + allPresets(); } - public void getPresets() { - List res = new ArrayList<>(); - try { - res = api.queryFieldsById("\'1\'!=\"\"", query.getFieldIds(), formName, null, 0, 0); - } catch (ARException e) { - System.out.println(e.getMessage()); - } + public PresetsGetResponse initPresets() throws ARException { + List entries = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", query.getFieldIds(), formName, null, + 0, 0); + PresetsGetResponse response = new PresetsGetResponse(); + + if (entries.isEmpty() || entries == null) { + var sysdef = api.queryFieldsById("\'364000001\'==\"Systemdefault\"", defQuery.getFieldIds(), + formDefault, null, 0, 0); + } else { + System.out.println(entries); + } + return response; } + public void allPresets() throws ARException, NotFoundError { + var entries = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", query.getFieldIds(), formName, null, 0, + 0); + + if (entries.isEmpty() || entries == null) { + throw new NotFoundError("No presets found in this context"); + } else { + for (var v : entries) { + presets.add(new Preset(v.get(query.getFieldId("InstanceId")).toString(), + v.get(query.getFieldId("Name")).toString(), v.get(query.getFieldId("Definition")).toString(), + "")); + } + } + } + + public List getAll() { + return this.presets; + } } diff --git a/backend/src/main/java/com/nttdata/calender/presets/UserPreferences.java b/backend/src/main/java/com/nttdata/calender/presets/UserPreferences.java new file mode 100644 index 0000000..8041ab0 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/presets/UserPreferences.java @@ -0,0 +1,38 @@ +package com.nttdata.calender.presets; + +public class UserPreferences { + private String showDetails; + private String view; + private String language; + + public UserPreferences(String showDetails, String view, String language) { + this.showDetails = showDetails; + this.view = view; + this.language = language; + } + + public String getShowDetails() { + return this.showDetails; + } + + public void setShowDetails(String showDetails) { + this.showDetails = showDetails; + } + + public String getView() { + return this.view; + } + + public void setView(String view) { + this.view = view; + } + + public String getLanguage() { + return this.language; + } + + public void setLanguage(String language) { + this.language = language; + } + +}