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

@ -293,7 +293,6 @@ public class KalenderRestController {
return request; return request;
} }
/** /**
* Updates the state based on the provided {@link StateChangeRequest} object. * Updates the state based on the provided {@link StateChangeRequest} object.
* Returns a response entity with the updated state value. * Returns a response entity with the updated state value.
@ -319,7 +318,6 @@ public class KalenderRestController {
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.
* Returns an error when the action is not possible or the request has an * Returns an error when the action is not possible or the request has an
@ -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,6 +441,8 @@ 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();
} }
@ -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();
@ -115,18 +127,23 @@ public class Presets {
} }
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);
@ -139,8 +156,12 @@ public class Presets {
} }
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);
@ -148,21 +169,27 @@ public class Presets {
} }
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;