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

View File

@ -1,5 +1,8 @@
package com.nttdata.calender.approval;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
import com.bmc.arsys.api.ARException;
@ -13,6 +16,8 @@ import com.nttdata.calender.api.RemedyJavaAPI;
@Service
public class Approval {
private RemedyJavaAPI remedyJavaAPI;
private ArrayList<String> listOfFieldValues;
/**
* Constructor for the Approval class.
@ -21,6 +26,17 @@ public class Approval {
*/
public Approval(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
*/
public String update(ApprovalUpdateRequest request) throws ARException {
// Clear the list before processing a new request
listOfFieldValues.clear();
remedyJavaAPI.impersonateUser("WuiQualityKV");
String action = "APPROVAL";
@ -40,46 +59,18 @@ public class Approval {
.addFieldValue("ApprovalAction", 1000003264, request.getApprovalActionValue())
.build();
/*
* 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)";
* }
*/
collectFieldValues(queryUpdate); // Collect field values
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.
*

View File

@ -1,5 +1,8 @@
package com.nttdata.calender.implementer;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -18,6 +21,7 @@ import com.nttdata.calender.api.RemedyJavaAPI;
public class Implementer {
private RemedyJavaAPI remedyJavaAPI;
private static final String formName = "ASF:WI_TAS_Paket";
private ArrayList<String> listOfFieldValues;
/**
* Initialization of the Implementer class with autowiring of RemedyJavaAPI.
@ -27,6 +31,16 @@ public class Implementer {
@Autowired
public Implementer(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
*/
public String update(ImplementerUpdateRequest request) throws ARException {
// Clear the list before processing a new request
listOfFieldValues.clear();
var action = "SETCHGIMPLEMENTER";
var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions")
.addFieldValue("ChangeNr", 666000002, request.getPkgIdValue())
.addFieldValue("Action", 666000001, new Value(action))
.addFieldValue("LoginId", 666000005, request.getLoginIdValue())
.build();
collectFieldValues(queryUpdate); // Collect field values
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
* specific change.

View File

@ -21,6 +21,7 @@ public class Presets {
private Query prefQuery;
private RemedyJavaAPI api;
private List<Preset> presets;
private ArrayList<String> listOfFieldValues;
@Autowired
public Presets(RemedyJavaAPI api) throws ARException, NotFoundError {
@ -55,9 +56,20 @@ public class Presets {
.build();
this.presets = new ArrayList<>();
this.listOfFieldValues = new ArrayList<>();
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 {
PresetsGetResponse response = new PresetsGetResponse();
@ -91,7 +103,7 @@ public class Presets {
formUserPref, null, 0, 0);
// INIT ALL PRESETS
getAll();
response.setPresets(this.presets);
response.setSelectedPreset(preference.get(0).get(prefQuery.getFieldId("GUID")).toString());
@ -105,64 +117,79 @@ public class Presets {
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();
.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 {
listOfFieldValues.clear();
var saveQuery = new Query.QueryBuilder(formDefault)
.addFieldValue("FilterPresetName", 364000001, new Value(request.getName()))
.addFieldValue("FilterPresetDefinition", 364000002, new Value(request.getDefinition()))
.build();
.addFieldValue("FilterPresetName", 364000001, new Value(request.getName()))
.addFieldValue("FilterPresetDefinition", 364000002, new Value(request.getDefinition()))
.build();
collectFieldValues(saveQuery); // Collect field values
api.createEntry(saveQuery);
}
}
public boolean selectPreset(SelectPresetRequest guid) throws ARException {
listOfFieldValues.clear();
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,
null, 0,
0);
null, 0,
0);
if (pref.isEmpty() || pref == null)
return false;
return false;
api.modifyEntry(pref.get(0).getEntryId(), queryP);
return true;
}
}
public void updatePreset(UpdatePresetRequest request) throws ARException {
listOfFieldValues.clear();
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() + "\"",
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
queryPresets.getFieldIds(), formDefault, null, 0, 0).get(0);
api.modifyEntry(preset.getEntryId(), queryPresets);
}
}
public void renamePreset(RenamePresetRequest request) throws ARException {
listOfFieldValues.clear();
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);
collectFieldValues(queryPresets);
api.modifyEntry(preset.getEntryId(), queryPresets);
}
public void editUserPreferences(EditUserPreferencesRequest request) throws ARException {
listOfFieldValues.clear();
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();
collectFieldValues(queryUserPreferences);
var preferences = api
.queryFieldsById("\'2\'==\"" + api.getUser() + "\"", queryUserPreferences.getFieldIds(),
formUserPref, null, 0, 0)
@ -172,7 +199,8 @@ public class Presets {
}
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(),
formDefault,
null, 0,
@ -207,6 +235,12 @@ public class Presets {
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 {
allPresets();
return this.presets;