Merge branch 'Presets'
commit
066d72a3a8
|
|
@ -3,7 +3,6 @@ package com.nttdata.calender;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
package com.nttdata.calender.api;
|
package com.nttdata.calender.api;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.checkerframework.common.util.report.qual.ReportCall;
|
import org.checkerframework.common.util.report.qual.ReportCall;
|
||||||
|
import org.json.JSONObject;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
|
|
@ -34,6 +36,14 @@ import com.nttdata.calender.packageType.PackageType;
|
||||||
import com.nttdata.calender.planTimes.CalendarWeek;
|
import com.nttdata.calender.planTimes.CalendarWeek;
|
||||||
import com.nttdata.calender.planTimes.PlanTimes;
|
import com.nttdata.calender.planTimes.PlanTimes;
|
||||||
import com.nttdata.calender.planTimes.PlanTimesRequest;
|
import com.nttdata.calender.planTimes.PlanTimesRequest;
|
||||||
|
import com.nttdata.calender.presets.DeletePresetRequest;
|
||||||
|
import com.nttdata.calender.presets.EditUserPreferencesRequest;
|
||||||
|
import com.nttdata.calender.presets.Preset;
|
||||||
|
import com.nttdata.calender.presets.Presets;
|
||||||
|
import com.nttdata.calender.presets.PresetsGetResponse;
|
||||||
|
import com.nttdata.calender.presets.RenamePresetRequest;
|
||||||
|
import com.nttdata.calender.presets.SelectPresetRequest;
|
||||||
|
import com.nttdata.calender.presets.UpdatePresetRequest;
|
||||||
import com.nttdata.calender.states.State;
|
import com.nttdata.calender.states.State;
|
||||||
import com.nttdata.calender.states.StateChange;
|
import com.nttdata.calender.states.StateChange;
|
||||||
import com.nttdata.calender.states.StateChangeRequest;
|
import com.nttdata.calender.states.StateChangeRequest;
|
||||||
|
|
@ -294,6 +304,76 @@ public class KalenderRestController {
|
||||||
return implementer.get(request);
|
return implementer.get(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@PostMapping("/api/savePreset")
|
||||||
|
@ResponseBody
|
||||||
|
public List<Preset> savePreset(@RequestBody Preset request)
|
||||||
|
throws ARException, ValidationError, NotFoundError {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
presets.savePreset(request);
|
||||||
|
return presets.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@PostMapping("/api/selectPreset")
|
||||||
|
@ResponseBody
|
||||||
|
public boolean selectPreset(@RequestBody SelectPresetRequest guid) throws ARException,
|
||||||
|
NotFoundError {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
return presets.selectPreset(guid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@GetMapping("api/initPresets")
|
||||||
|
@ResponseBody
|
||||||
|
public Object initPresets() throws ARException, NotFoundError {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
return presets.initPresets();
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@PostMapping("api/updatePreset")
|
||||||
|
@ResponseBody
|
||||||
|
public List<Preset> updatePreset(@RequestBody UpdatePresetRequest request) throws NotFoundError, ARException {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
presets.updatePreset(request);
|
||||||
|
return presets.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@PostMapping("api/deletePreset")
|
||||||
|
@ResponseBody
|
||||||
|
public Object deletePreset(@RequestBody DeletePresetRequest request) throws ARException, NotFoundError {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
presets.deletePreset(request);
|
||||||
|
return presets.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin
|
||||||
|
@PostMapping("api/renamePreset")
|
||||||
|
@ResponseBody
|
||||||
|
public List<Preset> renamePreset(@RequestBody RenamePresetRequest request) throws NotFoundError, ARException {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
presets.renamePreset(request);
|
||||||
|
return presets.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@PostMapping("api/editUserPreferences")
|
||||||
|
@ResponseBody
|
||||||
|
public String editUserPreferences(@RequestBody EditUserPreferencesRequest request) throws ARException, NotFoundError {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
return presets.editUserPreferences(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@CrossOrigin("*")
|
||||||
|
@GetMapping("/api/getAllPresets")
|
||||||
|
@ResponseBody
|
||||||
|
public List<Preset> getAllPresets() throws NotFoundError, ARException {
|
||||||
|
Presets presets = new Presets(javaAPI);
|
||||||
|
return presets.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs the received request with the endpoint and request body.
|
* Logs the received request with the endpoint and request body.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ public class RemedyJavaAPI {
|
||||||
server.setPort(50000);
|
server.setPort(50000);
|
||||||
this.connect();
|
this.connect();
|
||||||
|
|
||||||
|
|
||||||
// TODO: move to APIApplication.java or State.java - see where it fits
|
// TODO: move to APIApplication.java or State.java - see where it fits
|
||||||
State.getInstance().queryState(this);
|
State.getInstance().queryState(this);
|
||||||
SupportGroup.getInstance().querySupportGroups(this);
|
SupportGroup.getInstance().querySupportGroups(this);
|
||||||
|
|
@ -136,6 +137,25 @@ public class RemedyJavaAPI {
|
||||||
return "Entry created successfully. ID: " + entryIdOut;
|
return "Entry created successfully. ID: " + entryIdOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String deleteEntry(String formName, String entryId) throws ARException {
|
||||||
|
// Specify 0 for the deleteOption as mentioned in the documentation
|
||||||
|
int deleteOption = 0;
|
||||||
|
|
||||||
|
// Attempt to delete the entry
|
||||||
|
server.deleteEntry(formName, entryId, deleteOption);
|
||||||
|
|
||||||
|
// Check for any status or warnings after the deletion
|
||||||
|
var lastStatus = server.getLastStatus();
|
||||||
|
if (!lastStatus.isEmpty()) {
|
||||||
|
applicationLogger.warn("Warning after deleting entry: " + lastStatus);
|
||||||
|
return "Warning: " + lastStatus.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
applicationLogger.info("Entry with ID " + entryId + " deleted successfully from form " + formName);
|
||||||
|
return "Entry deleted successfully. ID: " + entryId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Takes an entry ID and a {@link Query} object with values and updates the
|
* Takes an entry ID and a {@link Query} object with values and updates the
|
||||||
* selected entry with the values provided in the query.
|
* selected entry with the values provided in the query.
|
||||||
|
|
@ -331,4 +351,7 @@ public class RemedyJavaAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public boolean isAdministrator() throws ARException {
|
||||||
|
return server.isAdministrator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -90,6 +90,8 @@ public class Change {
|
||||||
this.queryChange.getFormName(),
|
this.queryChange.getFormName(),
|
||||||
sort, request.getSliceStart(),
|
sort, request.getSliceStart(),
|
||||||
request.getSliceEnd());
|
request.getSliceEnd());
|
||||||
|
|
||||||
|
System.out.println(qualifier); // "\'1000000182\'!=\".\""
|
||||||
var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName());
|
var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName());
|
||||||
var changes = new ArrayList<ChangeItem>();
|
var changes = new ArrayList<ChangeItem>();
|
||||||
|
|
||||||
|
|
@ -151,7 +153,9 @@ public class Change {
|
||||||
changes.add(change);
|
changes.add(change);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
System.out.println(entries.size());
|
||||||
api.freeImpersonatedUser();
|
api.freeImpersonatedUser();
|
||||||
|
|
||||||
return new ChangeResponse(entriesSize, changes);
|
return new ChangeResponse(entriesSize, changes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,8 @@
|
||||||
package com.nttdata.calender.changes;
|
package com.nttdata.calender.changes;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.format.DateTimeParseException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import com.bmc.arsys.api.ARException;
|
|
||||||
import com.bmc.arsys.api.SortInfo;
|
import com.bmc.arsys.api.SortInfo;
|
||||||
import com.nttdata.calender.api.Query;
|
import com.nttdata.calender.api.Query;
|
||||||
import com.nttdata.calender.api.RemedyJavaAPI;
|
|
||||||
import com.nttdata.calender.changes.query.Filter;
|
import com.nttdata.calender.changes.query.Filter;
|
||||||
import com.nttdata.calender.changes.query.FilterElement;
|
import com.nttdata.calender.changes.query.FilterElement;
|
||||||
import com.nttdata.calender.changes.query.Sort;
|
import com.nttdata.calender.changes.query.Sort;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class DeletePresetRequest {
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return this.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class EditUserPreferencesRequest {
|
||||||
|
private int details;
|
||||||
|
private int view;
|
||||||
|
private String language;
|
||||||
|
|
||||||
|
public int getDetails() {
|
||||||
|
return this.details;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetails(int details) {
|
||||||
|
this.details = details;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getView() {
|
||||||
|
return this.view;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setView(int view) {
|
||||||
|
this.view = view;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLanguage() {
|
||||||
|
return this.language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage(String language) {
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class Preset {
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefinition() {
|
||||||
|
return this.definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefinition(String definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPresetType() {
|
||||||
|
return this.presetType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPresetType(String presetType) {
|
||||||
|
this.presetType = presetType;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,214 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.bmc.arsys.api.ARException;
|
||||||
|
import com.bmc.arsys.api.Value;
|
||||||
|
import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
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 final static String formUserPref = "ASF:CHG_CAL_UserPreferences";
|
||||||
|
private Query query;
|
||||||
|
private Query defQuery;
|
||||||
|
private Query prefQuery;
|
||||||
|
private RemedyJavaAPI api;
|
||||||
|
private List<Preset> presets;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public Presets(RemedyJavaAPI api) throws ARException, NotFoundError {
|
||||||
|
this.api = api;
|
||||||
|
|
||||||
|
this.query = new Query.QueryBuilder(formName)
|
||||||
|
.addFieldId("RequestId", 6)
|
||||||
|
.addFieldId("InstanceId", 179)
|
||||||
|
.addFieldId("Status", 7)
|
||||||
|
.addFieldId("GUID", 364000001) // current active preset
|
||||||
|
.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.prefQuery = new Query.QueryBuilder(formUserPref)
|
||||||
|
.addFieldId("GUID", 364000001)
|
||||||
|
.addFieldId("Details", 364000002)
|
||||||
|
.addFieldId("View", 364000003)
|
||||||
|
.addFieldId("Language", 364000004)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
this.presets = new ArrayList<>();
|
||||||
|
api.impersonateUser("ext_StanzPa");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object initPresets() throws ARException, NotFoundError {
|
||||||
|
|
||||||
|
PresetsGetResponse response = new PresetsGetResponse();
|
||||||
|
|
||||||
|
// SYSTEMDEFAULT
|
||||||
|
var sysdef = api.queryFieldsById("\'364000001\'==\"Systemdefault\"", defQuery.getFieldIds(),
|
||||||
|
formDefault, null, 0, 0).get(0);
|
||||||
|
String sysdefGUID = sysdef.get(defQuery.getFieldId("InstanceId")).toString();
|
||||||
|
|
||||||
|
// CHECK IF USER HAS PREFERENCES
|
||||||
|
var preference = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", prefQuery.getFieldIds(),
|
||||||
|
formUserPref, null, 0, 0);
|
||||||
|
|
||||||
|
if (preference != null && !preference.isEmpty()) {
|
||||||
|
// CHECK IF PREFERENCE HAS GUID
|
||||||
|
var guid = preference.get(0).get(prefQuery.getFieldId("GUID"));
|
||||||
|
if (guid.toString() == null) {
|
||||||
|
// IF GUID IS NULL PUT SYSTEM DEFAULT INSIDE
|
||||||
|
System.out.println("GEHT REIN");
|
||||||
|
var queryPreferenceNewValue = new Query.QueryBuilder(formUserPref)
|
||||||
|
.addFieldValue("GUID", 364000001, new Value(sysdefGUID)).build();
|
||||||
|
var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"",
|
||||||
|
queryPreferenceNewValue.getFieldIds(), formUserPref, null, 0, 0);
|
||||||
|
api.modifyEntry(pref.get(0).getEntryId(), queryPreferenceNewValue);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// IF USER HAS NO PREFERENCES CREATE NEW ENTRY WITH PREFERENCES AND SYSDEF GUID
|
||||||
|
createUserPreference(sysdefGUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
preference = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", prefQuery.getFieldIds(),
|
||||||
|
formUserPref, null, 0, 0);
|
||||||
|
|
||||||
|
// INIT ALL PRESETS
|
||||||
|
getAll();
|
||||||
|
response.setPresets(this.presets);
|
||||||
|
response.setSelectedPreset(preference.get(0).get(prefQuery.getFieldId("GUID")).toString());
|
||||||
|
response.setUserPreferences(
|
||||||
|
new UserPreferences(preference.get(0).get(prefQuery.getFieldId("Details")).toString(),
|
||||||
|
preference.get(0).get(prefQuery.getFieldId("View")).toString(),
|
||||||
|
preference.get(0).get(prefQuery.getFieldId("Language")).toString()));
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createUserPreference(String guid) throws ARException {
|
||||||
|
var savePreference = new Query.QueryBuilder(formUserPref)
|
||||||
|
.addFieldValue("GUID", 364000001, new Value(guid))
|
||||||
|
.addFieldValue("Details", 364000002, new Value(1))
|
||||||
|
.addFieldValue("View", 364000003, new Value(1))
|
||||||
|
.addFieldValue("Language", 364000004, new Value("DE"))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
api.createEntry(savePreference);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void savePreset(Preset request) throws ARException, NotFoundError {
|
||||||
|
var saveQuery = new Query.QueryBuilder(formDefault)
|
||||||
|
.addFieldValue("FilterPresetName", 364000001, new Value(request.getName()))
|
||||||
|
.addFieldValue("FilterPresetDefinition", 364000002, new Value(request.getDefinition()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
api.createEntry(saveQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean selectPreset(SelectPresetRequest guid) throws ARException {
|
||||||
|
var queryP = new Query.QueryBuilder(formUserPref)
|
||||||
|
.addFieldValue("GUID", 364000001, new Value(guid.getGuid())).build();
|
||||||
|
|
||||||
|
var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryP.getFieldIds(), formUserPref,
|
||||||
|
null, 0,
|
||||||
|
0);
|
||||||
|
|
||||||
|
if (pref.isEmpty() || pref == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
api.modifyEntry(pref.get(0).getEntryId(), queryP);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updatePreset(UpdatePresetRequest request) throws ARException {
|
||||||
|
var queryPresets = new Query.QueryBuilder(formDefault)
|
||||||
|
.addFieldValue("Definition", 364000002, new Value(request.getDefinition())).build();
|
||||||
|
var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"",
|
||||||
|
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
|
||||||
|
|
||||||
|
api.modifyEntry(preset.getEntryId(), queryPresets);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void renamePreset(RenamePresetRequest request) throws ARException {
|
||||||
|
var queryPresets = new Query.QueryBuilder(formDefault)
|
||||||
|
.addFieldValue("Name", 364000001, new Value(request.getNewName())).build();
|
||||||
|
var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"",
|
||||||
|
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
|
||||||
|
|
||||||
|
api.modifyEntry(preset.getEntryId(), queryPresets);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String editUserPreferences(EditUserPreferencesRequest request) throws ARException {
|
||||||
|
var queryUserPreferences = new Query.QueryBuilder(formUserPref)
|
||||||
|
.addFieldValue("Details", 364000002, new Value(request.getDetails()))
|
||||||
|
.addFieldValue("View", 364000003, new Value(request.getView()))
|
||||||
|
.addFieldValue("Language", 364000004, new Value(request.getLanguage()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
var preferences = api
|
||||||
|
.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryUserPreferences.getFieldIds(),
|
||||||
|
formUserPref, null, 0, 0)
|
||||||
|
.get(0);
|
||||||
|
|
||||||
|
// bei falschen input parameter
|
||||||
|
if (preferences.isEmpty() || preferences == null)
|
||||||
|
return "Error";
|
||||||
|
api.modifyEntry(preferences.getEntryId(), queryUserPreferences);
|
||||||
|
return "Success";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void allPresets() throws ARException, NotFoundError {
|
||||||
|
var entries = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", defQuery.getFieldIds(),
|
||||||
|
formDefault,
|
||||||
|
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(defQuery.getFieldId("InstanceId")).toString(),
|
||||||
|
v.get(defQuery.getFieldId("Name")).toString(),
|
||||||
|
v.get(defQuery.getFieldId("Definition")).toString(),
|
||||||
|
""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deletePreset(DeletePresetRequest request) throws ARException {
|
||||||
|
var entries = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"", null, formDefault, null, 0, 0)
|
||||||
|
.get(0);
|
||||||
|
api.deleteEntry(formDefault, entries.getEntryId());
|
||||||
|
|
||||||
|
// SYSTEMDEFAULT
|
||||||
|
var sysdef = api.queryFieldsById("\'364000001\'==\"Systemdefault\"", defQuery.getFieldIds(), formDefault, null, 0, 0).get(0);
|
||||||
|
String sysdefGUID = sysdef.get(defQuery.getFieldId("InstanceId")).toString();
|
||||||
|
|
||||||
|
// reset selected preset
|
||||||
|
SelectPresetRequest spr = new SelectPresetRequest();
|
||||||
|
spr.setGuid(sysdefGUID);
|
||||||
|
selectPreset(spr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Preset> getAll() throws NotFoundError, ARException {
|
||||||
|
allPresets();
|
||||||
|
return this.presets;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PresetsGetResponse {
|
||||||
|
private List<Preset> presets;
|
||||||
|
private String selectedPreset;
|
||||||
|
private UserPreferences userPreferences;
|
||||||
|
|
||||||
|
public PresetsGetResponse(List<Preset> list, String selectedPresets, UserPreferences userPreferences) {
|
||||||
|
this.presets = new ArrayList<>();
|
||||||
|
this.selectedPreset = selectedPresets;
|
||||||
|
this.userPreferences = userPreferences;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PresetsGetResponse() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Preset> getPresets() {
|
||||||
|
return this.presets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPresets(List<Preset> presets) {
|
||||||
|
this.presets = presets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelectedPreset() {
|
||||||
|
return this.selectedPreset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedPreset(String selectedPreset) {
|
||||||
|
this.selectedPreset = selectedPreset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPreferences getUserPreferences() {
|
||||||
|
return this.userPreferences;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserPreferences(UserPreferences userPreferences) {
|
||||||
|
this.userPreferences = userPreferences;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class RenamePresetRequest {
|
||||||
|
private String newName;
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
public RenamePresetRequest(String newName, String id) {
|
||||||
|
this.newName = newName;
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNewName() {
|
||||||
|
return this.newName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewName(String newName) {
|
||||||
|
this.newName = newName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return this.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class SelectPresetRequest {
|
||||||
|
private String guid;
|
||||||
|
|
||||||
|
public String getGuid() {
|
||||||
|
return guid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGuid(String guid) {
|
||||||
|
this.guid = guid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.nttdata.calender.presets;
|
||||||
|
|
||||||
|
public class UpdatePresetRequest {
|
||||||
|
private String id;
|
||||||
|
private String definition;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return this.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefinition() {
|
||||||
|
return this.definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefinition(String definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -15,6 +15,7 @@ import com.nttdata.calender.errorhandling.ErrorTypes.NotFoundError;
|
||||||
*/
|
*/
|
||||||
public class SupportGroup {
|
public class SupportGroup {
|
||||||
private static final String formName = "CTM:Support Group";
|
private static final String formName = "CTM:Support Group";
|
||||||
|
private static final String formAssoc = "CTM:Support Group Assoc LookUp";
|
||||||
private static final SupportGroup INSTANCE = new SupportGroup();
|
private static final SupportGroup INSTANCE = new SupportGroup();
|
||||||
private ArrayList<SupportGroupGetResponse> supportGroups;
|
private ArrayList<SupportGroupGetResponse> supportGroups;
|
||||||
private SupportGroupGetResponse userSupportGroup;
|
private SupportGroupGetResponse userSupportGroup;
|
||||||
|
|
@ -43,13 +44,18 @@ public class SupportGroup {
|
||||||
* @throws NotFoundError if no support groups are found in this context.
|
* @throws NotFoundError if no support groups are found in this context.
|
||||||
*/
|
*/
|
||||||
public void querySupportGroups(RemedyJavaAPI api) throws ARException, NotFoundError {
|
public void querySupportGroups(RemedyJavaAPI api) throws ARException, NotFoundError {
|
||||||
var querySupportGroups = new Query.QueryBuilder(formName)
|
|
||||||
|
api.impersonateUser("ext_StanzPa");
|
||||||
|
var querySupportGroups = new Query.QueryBuilder(formAssoc)
|
||||||
.addFieldId("SupportGroup", 1000000015)
|
.addFieldId("SupportGroup", 1000000015)
|
||||||
.addFieldId("SupportGroupId", 1)
|
.addFieldId("SupportGroupId", 1000000079)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
System.out.println(api.isAdministrator());
|
||||||
|
|
||||||
|
if (api.isAdministrator()) {
|
||||||
this.supportGroups = api
|
this.supportGroups = api
|
||||||
.queryFieldsById("\'Support Group ID\' != \"\"", querySupportGroups.getFieldIds(),
|
.queryFieldsById("\'4\' != \"_\"", querySupportGroups.getFieldIds(),
|
||||||
querySupportGroups.getFormName(), null, 0, 0)
|
querySupportGroups.getFormName(), null, 0, 0)
|
||||||
.stream()
|
.stream()
|
||||||
.map(entry -> new SupportGroupGetResponse(
|
.map(entry -> new SupportGroupGetResponse(
|
||||||
|
|
@ -57,10 +63,23 @@ public class SupportGroup {
|
||||||
entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString()))
|
entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString()))
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toCollection(ArrayList::new));
|
.collect(Collectors.toCollection(ArrayList::new));
|
||||||
|
} else {
|
||||||
|
this.supportGroups = api
|
||||||
|
.queryFieldsById("\'4\' == \"" + api.getUser() + "\"", querySupportGroups.getFieldIds(),
|
||||||
|
querySupportGroups.getFormName(), null, 0, 0)
|
||||||
|
.stream()
|
||||||
|
.map(entry -> new SupportGroupGetResponse(
|
||||||
|
entry.get(querySupportGroups.getFieldId("SupportGroup")).toString(),
|
||||||
|
entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString()))
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toCollection(ArrayList::new));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (this.supportGroups.isEmpty()) {
|
if (this.supportGroups.isEmpty()) {
|
||||||
throw new NotFoundError("No support groups found in this context");
|
throw new NotFoundError("No support groups found in this context");
|
||||||
}
|
}
|
||||||
|
api.freeImpersonatedUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue