json fieldvalue
parent
d0a4d8a0a6
commit
e643c6c71a
|
|
@ -309,10 +309,13 @@ public class KalenderRestController {
|
|||
logRequest("/updateState", request.toString());
|
||||
httpRequest.setAttribute("requestBody", request);
|
||||
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
|
||||
|
||||
var response = stateChange.createStateChange(request);
|
||||
|
||||
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.
|
||||
|
|
@ -429,7 +432,7 @@ public class KalenderRestController {
|
|||
presets.deletePreset(request);
|
||||
return presets.getAll();
|
||||
}
|
||||
|
||||
|
||||
@CrossOrigin
|
||||
@PostMapping("api/renamePreset")
|
||||
@ResponseBody
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.startsWith;
|
|||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class RequestInterceptor implements HandlerInterceptor {
|
||||
|
|
@ -47,66 +48,82 @@ public class RequestInterceptor implements HandlerInterceptor {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
|
||||
throws Exception {
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
|
||||
throws Exception {
|
||||
|
||||
if (!"POST".equalsIgnoreCase(request.getMethod()) || !(handler instanceof HandlerMethod)) {
|
||||
return;
|
||||
if (!"POST".equalsIgnoreCase(request.getMethod()) || !(handler instanceof HandlerMethod)) {
|
||||
return;
|
||||
}
|
||||
|
||||
long transactionId = System.currentTimeMillis();
|
||||
Query entry = null;
|
||||
|
||||
Object requestBody = request.getAttribute("requestBody");
|
||||
String formName = (String) request.getAttribute("formName");
|
||||
String entryId = (String) request.getAttribute("entryId");
|
||||
int status = (ex == null) ? 3 : 2;
|
||||
|
||||
// Retrieve the list of field values from the request attribute
|
||||
List<String> listOfFieldValues = (List<String>) request.getAttribute("listOfFieldValues");
|
||||
|
||||
if (listOfFieldValues != null) {
|
||||
StringBuilder fieldValueString = new StringBuilder("{\n");
|
||||
for (String field : listOfFieldValues) {
|
||||
fieldValueString.append("\t\"").append(field).append("\", \n");
|
||||
}
|
||||
// Remove the last comma and space
|
||||
if (fieldValueString.length() > 1) {
|
||||
fieldValueString.setLength(fieldValueString.length() - 2);
|
||||
}
|
||||
fieldValueString.append("\n}");
|
||||
|
||||
long transactionId = System.currentTimeMillis();
|
||||
Query entry = null;
|
||||
|
||||
Object requestBody = request.getAttribute("requestBody");
|
||||
String formName = (String) request.getAttribute("formName");
|
||||
int status = (ex == null) ? 3 : 2;
|
||||
String fieldValueJson = fieldValueString.toString();
|
||||
|
||||
if (requestBody instanceof ChangeUpdateRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Date change", formName, ((ChangeUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Date change", formName, ((ChangeUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status, ((ChangeUpdateRequest) requestBody).getResourceId(), fieldValueJson);
|
||||
} else if (requestBody instanceof StateChangeRequest) {
|
||||
entry = buildQueryEntry(transactionId, "State transition", formName, ((StateChangeRequest) requestBody).getChangeNr(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "State transition", formName, ((StateChangeRequest) requestBody).getChangeNr(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof ImplementerUpdateRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Implementer Update", formName, ((ImplementerUpdateRequest) requestBody).getPkgId(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Implementer Update", formName, ((ImplementerUpdateRequest) requestBody).getPkgId(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof ApprovalUpdateRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Approval Update", formName, ((ApprovalUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Approval Update", formName, ((ApprovalUpdateRequest) requestBody).getChangeNr(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof Preset) {
|
||||
entry = buildQueryEntry(transactionId, "Save Preset", formName, ((Preset) requestBody).getId(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Save Preset", formName, ((Preset) requestBody).getId(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof SelectPresetRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Select Preset", formName, ((SelectPresetRequest) requestBody).getGuid(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Select Preset", formName, ((SelectPresetRequest) requestBody).getGuid(), getAssignedTo(), status,"?", fieldValueJson);
|
||||
} else if (requestBody instanceof UpdatePresetRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Update Preset", formName, ((UpdatePresetRequest) requestBody).getId(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Update Preset", formName, ((UpdatePresetRequest) requestBody).getId(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof DeletePresetRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Delete Preset", formName, ((DeletePresetRequest) requestBody).getId(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Delete Preset", formName, ((DeletePresetRequest) requestBody).getId(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof RenamePresetRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Rename Preset", formName, ((RenamePresetRequest) requestBody).getId(), getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Rename Preset", formName, ((RenamePresetRequest) requestBody).getId(), getAssignedTo(), status, "?", fieldValueJson);
|
||||
} else if (requestBody instanceof EditUserPreferencesRequest) {
|
||||
entry = buildQueryEntry(transactionId, "Edit User Preferences", formName, "", getAssignedTo(), status);
|
||||
entry = buildQueryEntry(transactionId, "Edit User Preferences", formName, "", getAssignedTo(), status, "?", fieldValueJson);
|
||||
}
|
||||
|
||||
if (entry != null) {
|
||||
api.createEntry(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Query buildQueryEntry(long transactionId, String actionType, String affectedForm, String changeNr,
|
||||
String assignedTo, int status) {
|
||||
return new Query.QueryBuilder(form)
|
||||
.addFieldValue("AssignedTo", 4, new Value(assignedTo))
|
||||
.addFieldValue("Status", 7, new Value(status))
|
||||
.addFieldValue("TransactionID", 666000000, new Value(transactionId))
|
||||
.addFieldValue("FieldValue", 666000001, new Value(
|
||||
"Die Felder und Werte die verändert wurde, z.B.: {\"6000434\" : \"24.05.2024 13:00:45\"}"))
|
||||
.addFieldValue("FormIDs", 666000002,
|
||||
new Value("Die Request IDs (1er Feld / entryid) der Einträge, die modifiziert werden"))
|
||||
.addFieldValue("ActionType", 666000003, new Value(actionType))
|
||||
.addFieldValue("AffectedForm", 666000004, new Value(affectedForm))
|
||||
.addFieldValue("TicketID", 666000005, new Value(changeNr))
|
||||
.build();
|
||||
}
|
||||
private Query buildQueryEntry(long transactionId, String actionType, String affectedForm, String changeNr, String assignedTo, int status, String requestId, String fieldValueJson) {
|
||||
return new Query.QueryBuilder(form)
|
||||
.addFieldValue("AssignedTo", 4, new Value(assignedTo))
|
||||
.addFieldValue("Status", 7, new Value(status))
|
||||
.addFieldValue("TransactionID", 666000000, new Value(transactionId))
|
||||
.addFieldValue("FieldValue", 666000001, new Value(fieldValueJson))
|
||||
.addFieldValue("FormIDs", 666000002, new Value(requestId))
|
||||
.addFieldValue("ActionType", 666000003, new Value(actionType))
|
||||
.addFieldValue("AffectedForm", 666000004, new Value(affectedForm))
|
||||
.addFieldValue("TicketID", 666000005, new Value(changeNr))
|
||||
.build();
|
||||
}
|
||||
|
||||
private String getAssignedTo() {
|
||||
String assignedTo = api.getUser();
|
||||
return (assignedTo == null || assignedTo.isEmpty()) ? "Placeholder User" : assignedTo;
|
||||
}
|
||||
|
||||
private String getAssignedTo() {
|
||||
String assignedTo = api.getUser();
|
||||
return (assignedTo == null || assignedTo.isEmpty()) ? "Placeholder User" : assignedTo;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,7 +161,6 @@ public class Change {
|
|||
}
|
||||
|
||||
change.setPackageInstanceId(getValueStringByID(entry, "PackageInstanceId"));
|
||||
|
||||
change.setResourceName(getValueStringByID(entry, "ResourceName"));
|
||||
change.setD1(timestampToDateById(entry, "D1"));
|
||||
change.setD2(timestampToDateById(entry, "D2"));
|
||||
|
|
@ -204,7 +203,7 @@ public class Change {
|
|||
* @return the full name of the impersonated user
|
||||
* @throws ARException if an AR exception occurs
|
||||
* @throws NotFoundError if no user or support groups are found with the
|
||||
* provided login ID
|
||||
* provi1ded login ID
|
||||
*/
|
||||
private String processPeopleInfo(ChangeRequest request) throws ARException, NotFoundError {
|
||||
// Queries for SupportGroup of impersonated User
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.nttdata.calender.states;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -17,6 +20,7 @@ import com.nttdata.calender.api.RemedyJavaAPI;
|
|||
public class StateChange {
|
||||
static final String formName = "ASF:CHG_CAL_Interactions";
|
||||
private RemedyJavaAPI remedyJavaAPI;
|
||||
ArrayList<String> listOfFieldValues;
|
||||
|
||||
/**
|
||||
* Initializes the StateChange class with a RemedyJavaAPI instance.
|
||||
|
|
@ -26,6 +30,7 @@ public class StateChange {
|
|||
@Autowired
|
||||
public StateChange(RemedyJavaAPI remedyJavaAPI) {
|
||||
this.remedyJavaAPI = remedyJavaAPI;
|
||||
listOfFieldValues = new ArrayList<>();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -39,6 +44,7 @@ public class StateChange {
|
|||
* @throws ARException when there's an error creating the entry
|
||||
*/
|
||||
public String createStateChange(StateChangeRequest request) throws ARException {
|
||||
listOfFieldValues.clear();
|
||||
|
||||
String ACTION = "STATUSCHANGE";
|
||||
|
||||
|
|
@ -46,12 +52,22 @@ public class StateChange {
|
|||
ACTION = "RESTART";
|
||||
|
||||
var query = new Query.QueryBuilder(formName)
|
||||
.addFieldValue("Action", 666000001, new Value(ACTION))
|
||||
.addFieldValue("ChangeNr", 666000002, new Value(request.getChangeNr()))
|
||||
.addFieldValue("CurrentState", 666000003, new Value(request.getCurrentState()))
|
||||
.addFieldValue("NextState", 666000004, new Value(request.getNextState()))
|
||||
.addFieldValue("Action", 666000001, new Value(ACTION))
|
||||
.build();
|
||||
|
||||
// Print out the field IDs and values
|
||||
for (var entry : query.getFieldValues()) {
|
||||
listOfFieldValues.add(entry.getFieldId() + ": " + entry.getValue());
|
||||
}
|
||||
|
||||
return remedyJavaAPI.createEntry(query);
|
||||
}
|
||||
|
||||
public List<String> getListOfFieldValues() {
|
||||
return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue