added fieldvalues for all preset post handlers

main
Said Gedik 2024-07-05 20:50:44 +02:00
parent 99907146ad
commit b6d01f27ec
4 changed files with 136 additions and 73 deletions

View File

@ -283,16 +283,15 @@ public class KalenderRestController {
public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request, HttpServletRequest httpRequest) public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request, HttpServletRequest httpRequest)
throws ARException, ValidationError { throws ARException, ValidationError {
httpRequest.setAttribute("requestBody", request); httpRequest.setAttribute("requestBody", request);
String formName = (request.getState() == 0) ? "ASF:WI_TAS_Paket" : "CHG:Infrastructure Change"; String formName = (request.getState() == 0) ? "ASF:WI_TAS_Paket" : "CHG:Infrastructure Change";
httpRequest.setAttribute("formName", formName); httpRequest.setAttribute("formName", formName);
change.modifyTimestamp(request); change.modifyTimestamp(request);
httpRequest.setAttribute("listOfFieldValues", change.getListOfFieldValues()); httpRequest.setAttribute("listOfFieldValues", change.getListOfFieldValues());
return request; return request;
} }
/** /**
* Updates the state based on the provided {@link StateChangeRequest} object. * Updates the state based on the provided {@link StateChangeRequest} object.
@ -312,13 +311,12 @@ public class KalenderRestController {
logRequest("/updateState", request.toString()); logRequest("/updateState", request.toString());
httpRequest.setAttribute("requestBody", request); httpRequest.setAttribute("requestBody", request);
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
String response = stateChange.createStateChange(request); String response = stateChange.createStateChange(request);
httpRequest.setAttribute("listOfFieldValues", stateChange.getListOfFieldValues()); httpRequest.setAttribute("listOfFieldValues", stateChange.getListOfFieldValues());
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
/** /**
* Updates an implementer based on the data sent in the request. * Updates an implementer based on the data sent in the request.
@ -337,6 +335,8 @@ public class KalenderRestController {
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
var response = implementer.update(request); var response = implementer.update(request);
httpRequest.setAttribute("listOfFieldValues", implementer.getListOfFieldValues());
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -358,6 +358,8 @@ public class KalenderRestController {
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions"); httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
var response = approval.update(request); var response = approval.update(request);
httpRequest.setAttribute("listOfFieldValues", approval.getListOfFieldValues());
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -386,6 +388,8 @@ public class KalenderRestController {
Presets presets = new Presets(javaAPI); Presets presets = new Presets(javaAPI);
presets.savePreset(request); presets.savePreset(request);
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
return presets.getAll(); return presets.getAll();
} }
@ -393,13 +397,15 @@ public class KalenderRestController {
@PostMapping("/api/selectPreset") @PostMapping("/api/selectPreset")
@ResponseBody @ResponseBody
public boolean selectPreset(@RequestBody SelectPresetRequest guid, HttpServletRequest httpRequest) public boolean selectPreset(@RequestBody SelectPresetRequest guid, HttpServletRequest httpRequest)
throws ARException, throws ARException, NotFoundError {
NotFoundError {
httpRequest.setAttribute("requestBody", guid); httpRequest.setAttribute("requestBody", guid);
httpRequest.setAttribute("formName", "ASF:CHG_CAL_UserPreferences"); httpRequest.setAttribute("formName", "ASF:CHG_CAL_UserPreferences");
Presets presets = new Presets(javaAPI); Presets presets = new Presets(javaAPI);
return presets.selectPreset(guid); boolean result = presets.selectPreset(guid);
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
return result;
} }
@CrossOrigin("*") @CrossOrigin("*")
@ -420,6 +426,8 @@ public class KalenderRestController {
Presets presets = new Presets(javaAPI); Presets presets = new Presets(javaAPI);
presets.updatePreset(request); presets.updatePreset(request);
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
return presets.getAll(); return presets.getAll();
} }
@ -433,9 +441,11 @@ public class KalenderRestController {
Presets presets = new Presets(javaAPI); Presets presets = new Presets(javaAPI);
presets.deletePreset(request); presets.deletePreset(request);
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
return presets.getAll(); return presets.getAll();
} }
@CrossOrigin @CrossOrigin
@PostMapping("api/renamePreset") @PostMapping("api/renamePreset")
@ResponseBody @ResponseBody
@ -446,6 +456,8 @@ public class KalenderRestController {
Presets presets = new Presets(javaAPI); Presets presets = new Presets(javaAPI);
presets.renamePreset(request); presets.renamePreset(request);
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
return presets.getAll(); return presets.getAll();
} }

View File

@ -1,5 +1,8 @@
package com.nttdata.calender.approval; package com.nttdata.calender.approval;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.bmc.arsys.api.ARException; import com.bmc.arsys.api.ARException;
@ -13,6 +16,8 @@ import com.nttdata.calender.api.RemedyJavaAPI;
@Service @Service
public class Approval { public class Approval {
private RemedyJavaAPI remedyJavaAPI; private RemedyJavaAPI remedyJavaAPI;
private ArrayList<String> listOfFieldValues;
/** /**
* Constructor for the Approval class. * Constructor for the Approval class.
@ -21,6 +26,17 @@ public class Approval {
*/ */
public Approval(RemedyJavaAPI remedyJavaAPI) { public Approval(RemedyJavaAPI remedyJavaAPI) {
this.remedyJavaAPI = remedyJavaAPI; this.remedyJavaAPI = remedyJavaAPI;
this.listOfFieldValues = new ArrayList<>();
}
/**
* Returns the list of field values.
*
* @return listOfFieldValues
*/
public List<String> getListOfFieldValues() {
return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability
} }
/** /**
@ -31,6 +47,9 @@ public class Approval {
* @throws ARException If an error occurs during the update * @throws ARException If an error occurs during the update
*/ */
public String update(ApprovalUpdateRequest request) throws ARException { public String update(ApprovalUpdateRequest request) throws ARException {
// Clear the list before processing a new request
listOfFieldValues.clear();
remedyJavaAPI.impersonateUser("WuiQualityKV"); remedyJavaAPI.impersonateUser("WuiQualityKV");
String action = "APPROVAL"; String action = "APPROVAL";
@ -40,46 +59,18 @@ public class Approval {
.addFieldValue("ApprovalAction", 1000003264, request.getApprovalActionValue()) .addFieldValue("ApprovalAction", 1000003264, request.getApprovalActionValue())
.build(); .build();
/* collectFieldValues(queryUpdate); // Collect field values
* String user = remedyJavaAPI.getUser();
* var queryChanges = new Query.QueryBuilder("ASF:WI_TAS_Paket")
* .addFieldId("ChangeNr", 1000000182)
* .addFieldId("ActualStatus", 7)
* .build();
*
*
* Entry change = remedyJavaAPI
* .queryFieldsById("\'Infrastructure Change ID\' = \"" +
* request.getChangeNrValue().toString() + "\"",
* queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0, 0)
* .get(0);
*
*
* int approvalAction =
* queryUpdate.getFieldValue("ApprovalAction").getIntValue();
* var actualStatus = change.get(queryChanges.getFieldId("ActualStatus"));
*
*
* if (approvalAction == 1 || approvalAction == 2) {
* if (inApprovalList(user, request.getChangeNr()))
* return this.remedyJavaAPI.createEntry(queryUpdate);
* else
* return "user (" + user + ") has no authorization for approval.";
* } else if (approvalAction == 3) {
* if (request.getChangeNr().contains("PKG") && actualStatus.getIntValue() == 1)
* return this.remedyJavaAPI.createEntry(queryUpdate);
* else
* return request.getChangeNr().contains("PKG")
* ? "actual status not set to 'request for authorization'."
* : "is not a package (PKG)";
* } else {
* return "invalid approval status (must be 1, 2 or 3)";
* }
*/
return this.remedyJavaAPI.createEntry(queryUpdate); return this.remedyJavaAPI.createEntry(queryUpdate);
} }
private void collectFieldValues(Query query) {
for (var entry : query.getFieldValues()) {
listOfFieldValues.add(entry.getFieldId() + ": " + entry.getValue());
}
}
/** /**
* Checks if a user is in the approval list for a specific change. * Checks if a user is in the approval list for a specific change.
* *

View File

@ -1,5 +1,8 @@
package com.nttdata.calender.implementer; package com.nttdata.calender.implementer;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -18,6 +21,7 @@ import com.nttdata.calender.api.RemedyJavaAPI;
public class Implementer { public class Implementer {
private RemedyJavaAPI remedyJavaAPI; private RemedyJavaAPI remedyJavaAPI;
private static final String formName = "ASF:WI_TAS_Paket"; private static final String formName = "ASF:WI_TAS_Paket";
private ArrayList<String> listOfFieldValues;
/** /**
* Initialization of the Implementer class with autowiring of RemedyJavaAPI. * Initialization of the Implementer class with autowiring of RemedyJavaAPI.
@ -27,6 +31,16 @@ public class Implementer {
@Autowired @Autowired
public Implementer(RemedyJavaAPI remedyJavaAPI) { public Implementer(RemedyJavaAPI remedyJavaAPI) {
this.remedyJavaAPI = remedyJavaAPI; this.remedyJavaAPI = remedyJavaAPI;
this.listOfFieldValues = new ArrayList<>();
}
/**
* Returns the list of field values.
*
* @return listOfFieldValues
*/
public List<String> getListOfFieldValues() {
return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability
} }
/** /**
@ -37,15 +51,27 @@ public class Implementer {
* @throws ARException if an ARException occurs * @throws ARException if an ARException occurs
*/ */
public String update(ImplementerUpdateRequest request) throws ARException { public String update(ImplementerUpdateRequest request) throws ARException {
// Clear the list before processing a new request
listOfFieldValues.clear();
var action = "SETCHGIMPLEMENTER"; var action = "SETCHGIMPLEMENTER";
var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions") var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions")
.addFieldValue("ChangeNr", 666000002, request.getPkgIdValue()) .addFieldValue("ChangeNr", 666000002, request.getPkgIdValue())
.addFieldValue("Action", 666000001, new Value(action)) .addFieldValue("Action", 666000001, new Value(action))
.addFieldValue("LoginId", 666000005, request.getLoginIdValue()) .addFieldValue("LoginId", 666000005, request.getLoginIdValue())
.build(); .build();
collectFieldValues(queryUpdate); // Collect field values
return this.remedyJavaAPI.createEntry(queryUpdate); return this.remedyJavaAPI.createEntry(queryUpdate);
} }
private void collectFieldValues(Query query) {
for (var entry : query.getFieldValues()) {
listOfFieldValues.add(entry.getFieldId() + ": " + entry.getValue());
}
}
/** /**
* Retrieves all the implementers that are part of the support group of a * Retrieves all the implementers that are part of the support group of a
* specific change. * specific change.

View File

@ -21,6 +21,7 @@ public class Presets {
private Query prefQuery; private Query prefQuery;
private RemedyJavaAPI api; private RemedyJavaAPI api;
private List<Preset> presets; private List<Preset> presets;
private ArrayList<String> listOfFieldValues;
@Autowired @Autowired
public Presets(RemedyJavaAPI api) throws ARException, NotFoundError { public Presets(RemedyJavaAPI api) throws ARException, NotFoundError {
@ -55,9 +56,20 @@ public class Presets {
.build(); .build();
this.presets = new ArrayList<>(); this.presets = new ArrayList<>();
this.listOfFieldValues = new ArrayList<>();
api.impersonateUser("WuiQualityKV"); api.impersonateUser("WuiQualityKV");
} }
/**
* Returns the list of field values.
*
* @return listOfFieldValues
*/
public List<String> getListOfFieldValues() {
return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability
}
public Object initPresets() throws ARException, NotFoundError { public Object initPresets() throws ARException, NotFoundError {
PresetsGetResponse response = new PresetsGetResponse(); PresetsGetResponse response = new PresetsGetResponse();
@ -91,7 +103,7 @@ public class Presets {
formUserPref, null, 0, 0); formUserPref, null, 0, 0);
// INIT ALL PRESETS // INIT ALL PRESETS
getAll(); getAll();
response.setPresets(this.presets); response.setPresets(this.presets);
response.setSelectedPreset(preference.get(0).get(prefQuery.getFieldId("GUID")).toString()); response.setSelectedPreset(preference.get(0).get(prefQuery.getFieldId("GUID")).toString());
@ -105,64 +117,79 @@ public class Presets {
public void createUserPreference(String guid) throws ARException { public void createUserPreference(String guid) throws ARException {
var savePreference = new Query.QueryBuilder(formUserPref) var savePreference = new Query.QueryBuilder(formUserPref)
.addFieldValue("GUID", 364000001, new Value(guid)) .addFieldValue("GUID", 364000001, new Value(guid))
.addFieldValue("Details", 364000002, new Value(1)) .addFieldValue("Details", 364000002, new Value(1))
.addFieldValue("View", 364000003, new Value(1)) .addFieldValue("View", 364000003, new Value(1))
.addFieldValue("Language", 364000004, new Value("DE")) .addFieldValue("Language", 364000004, new Value("DE"))
.build(); .build();
api.createEntry(savePreference); api.createEntry(savePreference);
} }
public void savePreset(Preset request) throws ARException, NotFoundError { public void savePreset(Preset request) throws ARException, NotFoundError {
listOfFieldValues.clear();
var saveQuery = new Query.QueryBuilder(formDefault) var saveQuery = new Query.QueryBuilder(formDefault)
.addFieldValue("FilterPresetName", 364000001, new Value(request.getName())) .addFieldValue("FilterPresetName", 364000001, new Value(request.getName()))
.addFieldValue("FilterPresetDefinition", 364000002, new Value(request.getDefinition())) .addFieldValue("FilterPresetDefinition", 364000002, new Value(request.getDefinition()))
.build(); .build();
collectFieldValues(saveQuery); // Collect field values
api.createEntry(saveQuery); api.createEntry(saveQuery);
} }
public boolean selectPreset(SelectPresetRequest guid) throws ARException { public boolean selectPreset(SelectPresetRequest guid) throws ARException {
listOfFieldValues.clear();
var queryP = new Query.QueryBuilder(formUserPref) var queryP = new Query.QueryBuilder(formUserPref)
.addFieldValue("GUID", 364000001, new Value(guid.getGuid())).build(); .addFieldValue("GUID", 364000001, new Value(guid.getGuid())).build();
collectFieldValues(queryP); // Collect field values
var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryP.getFieldIds(), formUserPref, var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryP.getFieldIds(), formUserPref,
null, 0, null, 0,
0); 0);
if (pref.isEmpty() || pref == null) if (pref.isEmpty() || pref == null)
return false; return false;
api.modifyEntry(pref.get(0).getEntryId(), queryP); api.modifyEntry(pref.get(0).getEntryId(), queryP);
return true; return true;
} }
public void updatePreset(UpdatePresetRequest request) throws ARException { public void updatePreset(UpdatePresetRequest request) throws ARException {
listOfFieldValues.clear();
var queryPresets = new Query.QueryBuilder(formDefault) var queryPresets = new Query.QueryBuilder(formDefault)
.addFieldValue("Definition", 364000002, new Value(request.getDefinition())).build(); .addFieldValue("Definition", 364000002, new Value(request.getDefinition())).build();
collectFieldValues(queryPresets); // Collect field values
var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"", var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"",
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0); queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
api.modifyEntry(preset.getEntryId(), queryPresets); api.modifyEntry(preset.getEntryId(), queryPresets);
} }
public void renamePreset(RenamePresetRequest request) throws ARException { public void renamePreset(RenamePresetRequest request) throws ARException {
listOfFieldValues.clear();
var queryPresets = new Query.QueryBuilder(formDefault) var queryPresets = new Query.QueryBuilder(formDefault)
.addFieldValue("Name", 364000001, new Value(request.getNewName())).build(); .addFieldValue("Name", 364000001, new Value(request.getNewName())).build();
var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"", var preset = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"",
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0); queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
collectFieldValues(queryPresets);
api.modifyEntry(preset.getEntryId(), queryPresets); api.modifyEntry(preset.getEntryId(), queryPresets);
} }
public void editUserPreferences(EditUserPreferencesRequest request) throws ARException { public void editUserPreferences(EditUserPreferencesRequest request) throws ARException {
listOfFieldValues.clear();
var queryUserPreferences = new Query.QueryBuilder(formUserPref) var queryUserPreferences = new Query.QueryBuilder(formUserPref)
.addFieldValue("Details", 364000002, new Value(request.getDetails())) .addFieldValue("Details", 364000002, new Value(request.getDetails()))
.addFieldValue("View", 364000003, new Value(request.getView())) .addFieldValue("View", 364000003, new Value(request.getView()))
.addFieldValue("Language", 364000004, new Value(request.getLanguage())) .addFieldValue("Language", 364000004, new Value(request.getLanguage()))
.build(); .build();
collectFieldValues(queryUserPreferences);
var preferences = api var preferences = api
.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryUserPreferences.getFieldIds(), .queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryUserPreferences.getFieldIds(),
formUserPref, null, 0, 0) formUserPref, null, 0, 0)
@ -172,7 +199,8 @@ public class Presets {
} }
public void allPresets() throws ARException, NotFoundError { public void allPresets() throws ARException, NotFoundError {
var entries = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\" OR \'364000004\'!=NULL OR \'364000003\'!=NULL", var entries = api.queryFieldsById(
"\'2\'==\"" + api.getUser() + "\" OR \'364000004\'!=NULL OR \'364000003\'!=NULL",
defQuery.getFieldIds(), defQuery.getFieldIds(),
formDefault, formDefault,
null, 0, null, 0,
@ -207,6 +235,12 @@ public class Presets {
selectPreset(spr); selectPreset(spr);
} }
private void collectFieldValues(Query query) {
for (var entry : query.getFieldValues()) {
listOfFieldValues.add(entry.getFieldId() + ": " + entry.getValue());
}
}
public List<Preset> getAll() throws NotFoundError, ARException { public List<Preset> getAll() throws NotFoundError, ARException {
allPresets(); allPresets();
return this.presets; return this.presets;