Merge branch 'transaction'
commit
af8fcd2843
|
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"java.configuration.updateBuildConfiguration": "automatic"
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
|
"java.compile.nullAnalysis.mode": "disabled"
|
||||||
}
|
}
|
||||||
|
|
@ -1,27 +1,33 @@
|
||||||
package com.nttdata.calender;
|
package com.nttdata.calender;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
import com.nttdata.calender.api.RequestInterceptor;
|
||||||
import com.nttdata.calender.api.rsso.RssoInterceptor;
|
import com.nttdata.calender.api.rsso.RssoInterceptor;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class WebMvcConfig implements WebMvcConfigurer {
|
public class WebMvcConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
private final RssoInterceptor sessionInterceptor;
|
private final RssoInterceptor sessionInterceptor;
|
||||||
|
private final RequestInterceptor requestInterceptor;
|
||||||
|
|
||||||
public WebMvcConfig(RssoInterceptor sessionInterceptor) {
|
@Autowired
|
||||||
|
public WebMvcConfig(RssoInterceptor sessionInterceptor, RequestInterceptor requestInterceptor) {
|
||||||
this.sessionInterceptor = sessionInterceptor;
|
this.sessionInterceptor = sessionInterceptor;
|
||||||
|
this.requestInterceptor = requestInterceptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the session interceptor to the interceptor registry.
|
* Adds the session interceptor and request interceptor to the interceptor registry.
|
||||||
*
|
*
|
||||||
* @param registry the interceptor registry.
|
* @param registry the interceptor registry.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
registry.addInterceptor(sessionInterceptor);
|
registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
|
||||||
|
registry.addInterceptor(requestInterceptor).addPathPatterns("/**");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nttdata.calender.api;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
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;
|
||||||
|
|
@ -116,19 +118,27 @@ public class KalenderRestController {
|
||||||
* @throws ARException
|
* @throws ARException
|
||||||
* @throws JsonProcessingException if an exception occurs during JSON processing
|
* @throws JsonProcessingException if an exception occurs during JSON processing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@GetMapping("/api/getUser")
|
@GetMapping("/api/getUser")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String getUserId() throws ARException {
|
public ResponseEntity<String> getUserId() throws ARException {
|
||||||
|
|
||||||
var query = new Query.QueryBuilder("CTM:People LookUp")
|
var query = new Query.QueryBuilder("CTM:People LookUp")
|
||||||
.addFieldId("Name", 1000000017)
|
.addFieldId("Name", 1000000017)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
var name = this.javaAPI.queryFieldsById("\'4\'==\"" + javaAPI.getUser() + "\"", query.getFieldIds(),
|
var results = this.javaAPI.queryFieldsById("'4'==\"" + javaAPI.getUser() + "\"", query.getFieldIds(),
|
||||||
query.getFormName(), null, 0, 0).get(0);
|
query.getFormName(), null, 0, 0);
|
||||||
|
|
||||||
|
if (results.isEmpty()) {
|
||||||
|
// Handle the case where no results are found
|
||||||
|
String errorMessage = "No user found with the given criteria.";
|
||||||
|
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("{\"error\": \"" + errorMessage + "\"}");
|
||||||
|
}
|
||||||
|
|
||||||
|
var name = results.get(0);
|
||||||
String jsonString = "{\"userId\": \"" + name.get(query.getFieldId("Name")) + "\"}";
|
String jsonString = "{\"userId\": \"" + name.get(query.getFieldId("Name")) + "\"}";
|
||||||
return jsonString;
|
return ResponseEntity.ok(jsonString);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -208,7 +218,7 @@ public class KalenderRestController {
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ArrayList<ContractGetResponse> getContracts() throws ARException, NotFoundError {
|
public ArrayList<ContractGetResponse> getContracts() throws ARException, NotFoundError {
|
||||||
Contract contract = new Contract();
|
Contract contract = new Contract();
|
||||||
System.out.println(javaAPI.getUser());
|
// System.out.println(javaAPI.getUser());
|
||||||
return contract.get(this.javaAPI);
|
return contract.get(this.javaAPI);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -270,9 +280,17 @@ public class KalenderRestController {
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("/api/updateChange")
|
@PostMapping("/api/updateChange")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request)
|
public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request, HttpServletRequest httpRequest)
|
||||||
throws ARException, ValidationError {
|
throws ARException, ValidationError {
|
||||||
change.modifyTimestamp(request);
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
|
||||||
|
String formName = (request.getState() == 0) ? "ASF:WI_TAS_Paket" : "CHG:Infrastructure Change";
|
||||||
|
httpRequest.setAttribute("formName", formName);
|
||||||
|
|
||||||
|
var response = change.modifyTimestamp(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", change.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,9 +307,16 @@ public class KalenderRestController {
|
||||||
*/
|
*/
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("/api/updateState")
|
@PostMapping("/api/updateState")
|
||||||
public ResponseEntity<String> updateState(@RequestBody StateChangeRequest request) throws ARException {
|
public ResponseEntity<String> updateState(@RequestBody StateChangeRequest request, HttpServletRequest httpRequest)
|
||||||
|
throws ARException {
|
||||||
logRequest("/updateState", request.toString());
|
logRequest("/updateState", request.toString());
|
||||||
var response = stateChange.createStateChange(request);
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
|
||||||
|
|
||||||
|
String response = stateChange.createStateChange(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", stateChange.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -306,8 +331,15 @@ public class KalenderRestController {
|
||||||
*/
|
*/
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("api/updateImplementer")
|
@PostMapping("api/updateImplementer")
|
||||||
public ResponseEntity<String> updateImplementer(@RequestBody ImplementerUpdateRequest request) throws ARException {
|
public ResponseEntity<String> updateImplementer(@RequestBody ImplementerUpdateRequest request,
|
||||||
|
HttpServletRequest httpRequest) throws ARException {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
|
||||||
|
|
||||||
var response = implementer.update(request);
|
var response = implementer.update(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", implementer.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -323,8 +355,15 @@ public class KalenderRestController {
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("api/updateApproval")
|
@PostMapping("api/updateApproval")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResponseEntity<String> updateApproval(@RequestBody ApprovalUpdateRequest request) throws ARException {
|
public ResponseEntity<String> updateApproval(@RequestBody ApprovalUpdateRequest request,
|
||||||
|
HttpServletRequest httpRequest) throws ARException {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_Interactions");
|
||||||
|
|
||||||
var response = approval.update(request);
|
var response = approval.update(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", approval.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -346,20 +385,32 @@ public class KalenderRestController {
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("/api/savePreset")
|
@PostMapping("/api/savePreset")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Preset> savePreset(@RequestBody Preset request)
|
public List<Preset> savePreset(@RequestBody Preset request, HttpServletRequest httpRequest)
|
||||||
throws ARException, ValidationError, NotFoundError {
|
throws ARException, ValidationError, NotFoundError {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions");
|
||||||
|
|
||||||
Presets presets = new Presets(javaAPI);
|
Presets presets = new Presets(javaAPI);
|
||||||
presets.savePreset(request);
|
var response = presets.savePreset(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return presets.getAll();
|
return presets.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("/api/selectPreset")
|
@PostMapping("/api/selectPreset")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public boolean selectPreset(@RequestBody SelectPresetRequest guid) throws ARException,
|
public boolean selectPreset(@RequestBody SelectPresetRequest guid, HttpServletRequest httpRequest)
|
||||||
NotFoundError {
|
throws ARException, NotFoundError {
|
||||||
|
httpRequest.setAttribute("requestBody", guid);
|
||||||
|
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("*")
|
||||||
|
|
@ -373,36 +424,62 @@ public class KalenderRestController {
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("api/updatePreset")
|
@PostMapping("api/updatePreset")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Preset> updatePreset(@RequestBody UpdatePresetRequest request) throws NotFoundError, ARException {
|
public List<Preset> updatePreset(@RequestBody UpdatePresetRequest request, HttpServletRequest httpRequest)
|
||||||
|
throws NotFoundError, ARException {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions");
|
||||||
|
|
||||||
Presets presets = new Presets(javaAPI);
|
Presets presets = new Presets(javaAPI);
|
||||||
presets.updatePreset(request);
|
var response = presets.updatePreset(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return presets.getAll();
|
return presets.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("api/deletePreset")
|
@PostMapping("api/deletePreset")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Object deletePreset(@RequestBody DeletePresetRequest request) throws ARException, NotFoundError {
|
public Object deletePreset(@RequestBody DeletePresetRequest request, HttpServletRequest httpRequest)
|
||||||
|
throws ARException, NotFoundError {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions");
|
||||||
|
|
||||||
Presets presets = new Presets(javaAPI);
|
Presets presets = new Presets(javaAPI);
|
||||||
presets.deletePreset(request);
|
var response = presets.deletePreset(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return presets.getAll();
|
return presets.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@PostMapping("api/renamePreset")
|
@PostMapping("api/renamePreset")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public List<Preset> renamePreset(@RequestBody RenamePresetRequest request) throws NotFoundError, ARException {
|
public List<Preset> renamePreset(@RequestBody RenamePresetRequest request, HttpServletRequest httpRequest)
|
||||||
|
throws NotFoundError, ARException {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_FilterDefinitions");
|
||||||
|
|
||||||
Presets presets = new Presets(javaAPI);
|
Presets presets = new Presets(javaAPI);
|
||||||
presets.renamePreset(request);
|
var response = presets.renamePreset(request);
|
||||||
|
httpRequest.setAttribute("listOfFieldValues", presets.getListOfFieldValues());
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
|
|
||||||
return presets.getAll();
|
return presets.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
@PostMapping("api/editUserPreferences")
|
@PostMapping("api/editUserPreferences")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public void editUserPreferences(@RequestBody EditUserPreferencesRequest request) throws ARException, NotFoundError {
|
public void editUserPreferences(@RequestBody EditUserPreferencesRequest request, HttpServletRequest httpRequest)
|
||||||
|
throws ARException, NotFoundError {
|
||||||
|
httpRequest.setAttribute("requestBody", request);
|
||||||
|
httpRequest.setAttribute("formName", "ASF:CHG_CAL_UserPreferences");
|
||||||
|
|
||||||
Presets presets = new Presets(javaAPI);
|
Presets presets = new Presets(javaAPI);
|
||||||
presets.editUserPreferences(request);
|
var response = presets.editUserPreferences(request);
|
||||||
|
httpRequest.setAttribute("entryId", response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@CrossOrigin("*")
|
@CrossOrigin("*")
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,8 @@ public class RemedyJavaAPI {
|
||||||
return lastStatus.toString();
|
return lastStatus.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return "Entry created successfully. ID: " + entryIdOut;
|
// return "Entry created successfully. ID: " + entryIdOut;
|
||||||
|
return entryIdOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String deleteEntry(String formName, String entryId) throws ARException {
|
public String deleteEntry(String formName, String entryId) throws ARException {
|
||||||
|
|
@ -163,7 +164,7 @@ public class RemedyJavaAPI {
|
||||||
* @param updates the updates
|
* @param updates the updates
|
||||||
* @throws ARException when an ARException occurs
|
* @throws ARException when an ARException occurs
|
||||||
*/
|
*/
|
||||||
public void modifyEntry(String entryId, Query updates) throws ARException {
|
public String modifyEntry(String entryId, Query updates) throws ARException {
|
||||||
var values = updates.getFieldValues();
|
var values = updates.getFieldValues();
|
||||||
var entry = server.getEntry(updates.getFormName(), entryId, updates.getFieldIds());
|
var entry = server.getEntry(updates.getFormName(), entryId, updates.getFieldIds());
|
||||||
|
|
||||||
|
|
@ -171,6 +172,7 @@ public class RemedyJavaAPI {
|
||||||
entry.put(value.getFieldId(), value.getValue());
|
entry.put(value.getFieldId(), value.getValue());
|
||||||
});
|
});
|
||||||
server.setEntry(updates.getFormName(), entryId, entry, null, 0);
|
server.setEntry(updates.getFormName(), entryId, entry, null, 0);
|
||||||
|
return entryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,147 @@
|
||||||
|
package com.nttdata.calender.api;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.method.HandlerMethod;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
|
import com.nttdata.calender.approval.ApprovalUpdateRequest;
|
||||||
|
import com.nttdata.calender.changes.ChangeUpdateRequest;
|
||||||
|
import com.nttdata.calender.implementer.ImplementerUpdateRequest;
|
||||||
|
import com.nttdata.calender.presets.DeletePresetRequest;
|
||||||
|
import com.nttdata.calender.presets.EditUserPreferencesRequest;
|
||||||
|
import com.nttdata.calender.presets.Preset;
|
||||||
|
import com.nttdata.calender.presets.RenamePresetRequest;
|
||||||
|
import com.nttdata.calender.presets.SelectPresetRequest;
|
||||||
|
import com.nttdata.calender.presets.UpdatePresetRequest;
|
||||||
|
import com.nttdata.calender.states.StateChangeRequest;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import com.bmc.arsys.api.Value;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class RequestInterceptor implements HandlerInterceptor {
|
||||||
|
private RemedyJavaAPI api;
|
||||||
|
private static final String FORM_NAME = "ASF:CHG_CAL_Transactions";
|
||||||
|
private static final Logger logger = LogManager.getLogger("application");
|
||||||
|
private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
api = new RemedyJavaAPI();
|
||||||
|
String currentDateTime = LocalDateTime.now().format(dateTimeFormatter);
|
||||||
|
long transactionId = System.currentTimeMillis();
|
||||||
|
String out = String.format("Transaction ID = %d %s - handling request: %s", transactionId, currentDateTime, request.getRequestURI());
|
||||||
|
logger.info(out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
if (!"POST".equalsIgnoreCase(request.getMethod()) || !(handler instanceof HandlerMethod)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long transactionId = System.currentTimeMillis();
|
||||||
|
Object requestBody = request.getAttribute("requestBody");
|
||||||
|
String formName = getValidatedField((String) request.getAttribute("formName"), "");
|
||||||
|
String entryId = getValidatedField((String) request.getAttribute("entryId"), "");
|
||||||
|
int status = (ex == null) ? 3 : 2;
|
||||||
|
|
||||||
|
List<String> listOfFieldValues = getFieldValues(request);
|
||||||
|
String fieldValueJson = convertFieldValuesToJson(listOfFieldValues);
|
||||||
|
|
||||||
|
Query entry = null;
|
||||||
|
|
||||||
|
if (requestBody != null) {
|
||||||
|
if (requestBody instanceof ChangeUpdateRequest) {
|
||||||
|
ChangeUpdateRequest body = (ChangeUpdateRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Date change", formName, body.getChangeNr(), getAssignedTo(), status, body.getResourceId(), fieldValueJson);
|
||||||
|
} else if (requestBody instanceof StateChangeRequest) {
|
||||||
|
StateChangeRequest body = (StateChangeRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "State transition", formName, body.getChangeNr(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof ImplementerUpdateRequest) {
|
||||||
|
ImplementerUpdateRequest body = (ImplementerUpdateRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Implementer Update", formName, body.getPkgId(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof ApprovalUpdateRequest) {
|
||||||
|
ApprovalUpdateRequest body = (ApprovalUpdateRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Approval Update", formName, body.getChangeNr(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof Preset) {
|
||||||
|
Preset body = (Preset) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Save Preset", formName, body.getId(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof SelectPresetRequest) {
|
||||||
|
SelectPresetRequest body = (SelectPresetRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Select Preset", formName, body.getGuid(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof UpdatePresetRequest) {
|
||||||
|
UpdatePresetRequest body = (UpdatePresetRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Update Preset", formName, body.getId(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof DeletePresetRequest) {
|
||||||
|
DeletePresetRequest body = (DeletePresetRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Delete Preset", formName, body.getId(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof RenamePresetRequest) {
|
||||||
|
RenamePresetRequest body = (RenamePresetRequest) requestBody;
|
||||||
|
entry = buildQueryEntry(transactionId, "Rename Preset", formName, body.getId(), getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
} else if (requestBody instanceof EditUserPreferencesRequest) {
|
||||||
|
entry = buildQueryEntry(transactionId, "Edit User Preferences", formName, "", getAssignedTo(), status, entryId, fieldValueJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entry != null) {
|
||||||
|
api.createEntry(entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ex != null) {
|
||||||
|
logger.error("Exception occurred during afterCompletion: ", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getFieldValues(HttpServletRequest request) {
|
||||||
|
return (List<String>) request.getAttribute("listOfFieldValues");
|
||||||
|
}
|
||||||
|
|
||||||
|
private String convertFieldValuesToJson(List<String> fieldValues) {
|
||||||
|
if (fieldValues == null || fieldValues.isEmpty()) {
|
||||||
|
return "{}";
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder fieldValueString = new StringBuilder("{\n");
|
||||||
|
for (String field : fieldValues) {
|
||||||
|
fieldValueString.append("\t\"").append(field).append("\",\n");
|
||||||
|
}
|
||||||
|
// Remove the last comma and newline
|
||||||
|
if (fieldValueString.length() >= 2) {
|
||||||
|
fieldValueString.setLength(fieldValueString.length() - 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldValueString.append("\n}");
|
||||||
|
return fieldValueString.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Query buildQueryEntry(long transactionId, String actionType, String affectedForm, String changeNr, String assignedTo, int status, String requestId, String fieldValueJson) {
|
||||||
|
return new Query.QueryBuilder(FORM_NAME)
|
||||||
|
.addFieldValue("AssignedTo", 4, new Value(getValidatedField(assignedTo, "")))
|
||||||
|
.addFieldValue("Status", 7, new Value(status))
|
||||||
|
.addFieldValue("TransactionID", 666000000, new Value(transactionId))
|
||||||
|
.addFieldValue("FieldValue", 666000001, new Value(getValidatedField(fieldValueJson, "")))
|
||||||
|
.addFieldValue("FormIDs", 666000002, new Value(getValidatedField(requestId, "")))
|
||||||
|
.addFieldValue("ActionType", 666000003, new Value(getValidatedField(actionType, "")))
|
||||||
|
.addFieldValue("AffectedForm", 666000004, new Value(getValidatedField(affectedForm, "")))
|
||||||
|
.addFieldValue("TicketID", 666000005, new Value(getValidatedField(changeNr, "")))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getAssignedTo() {
|
||||||
|
return getValidatedField(api.getUser(), "");
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getValidatedField(String field, String defaultValue) {
|
||||||
|
return (field == null || field.isEmpty()) ? defaultValue : field;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
|
@ -32,6 +33,7 @@ public class Change {
|
||||||
private Query queryChange;
|
private Query queryChange;
|
||||||
private RemedyJavaAPI api;
|
private RemedyJavaAPI api;
|
||||||
private final static String formName = "ASF:WI_TAS_Paket";
|
private final static String formName = "ASF:WI_TAS_Paket";
|
||||||
|
private ArrayList<String> listOfFieldValues;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for the {@link Change} class which gets autowired with the
|
* Constructor for the {@link Change} class which gets autowired with the
|
||||||
|
|
@ -72,6 +74,17 @@ public class Change {
|
||||||
.addFieldId("CurrentStageNumber", 301541700)
|
.addFieldId("CurrentStageNumber", 301541700)
|
||||||
.addFieldId("Plantime", 666000001)
|
.addFieldId("Plantime", 666000001)
|
||||||
.build();
|
.build();
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -87,21 +100,16 @@ public class Change {
|
||||||
* @throws ValidationError if there is an invalid filter or qualification
|
* @throws ValidationError if there is an invalid filter or qualification
|
||||||
*/
|
*/
|
||||||
public ChangeResponse get(ChangeRequest request) throws ARException, NotFoundError, ValidationError {
|
public ChangeResponse get(ChangeRequest request) throws ARException, NotFoundError, ValidationError {
|
||||||
|
|
||||||
LoggerTemplates log = new LoggerTemplates(api);
|
LoggerTemplates log = new LoggerTemplates(api);
|
||||||
|
|
||||||
var peopleFullName = processPeopleInfo(request);
|
var peopleFullName = processPeopleInfo(request);
|
||||||
|
|
||||||
var filter = request.getFilter();
|
var filter = request.getFilter();
|
||||||
for (var v : filter.getFilterElement()) {
|
|
||||||
System.out.println(v.getFilter() + ", " + v.getColumn() +", " + v.getCriteria());
|
|
||||||
}
|
|
||||||
var qualifier = filter.constructQualifier(queryChange, api);
|
var qualifier = filter.constructQualifier(queryChange, api);
|
||||||
SortInfo sort = request.constructSortInfo(queryChange);
|
SortInfo sort = request.constructSortInfo(queryChange);
|
||||||
|
|
||||||
log.initLog("getChanges", api.getUser()); // Logging
|
log.initLog("getChanges", api.getUser()); // Logging
|
||||||
|
|
||||||
System.out.println(qualifier);
|
|
||||||
var entries = api.queryFieldsById(qualifier, this.queryChange.getFieldIds(),
|
var entries = api.queryFieldsById(qualifier, this.queryChange.getFieldIds(),
|
||||||
this.queryChange.getFormName(),
|
this.queryChange.getFormName(),
|
||||||
sort, request.getSliceStart(),
|
sort, request.getSliceStart(),
|
||||||
|
|
@ -143,33 +151,33 @@ public class Change {
|
||||||
change.setChangeNr(getValueStringByID(entry, "ChangeNr"));
|
change.setChangeNr(getValueStringByID(entry, "ChangeNr"));
|
||||||
change.setSupportGroup(getValueStringByID(entry, "SupportGroup"));
|
change.setSupportGroup(getValueStringByID(entry, "SupportGroup"));
|
||||||
change.setStatusReason(getValueStringByID(entry, "StatusReason"));
|
change.setStatusReason(getValueStringByID(entry, "StatusReason"));
|
||||||
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 10 || Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 9){
|
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1) == 10
|
||||||
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 10){
|
|| Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
|
||||||
if(change.getStatusReason().equals("9000")){
|
.orElse(-1) == 9) {
|
||||||
|
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
|
||||||
|
.orElse(-1) == 10) {
|
||||||
|
if (change.getStatusReason().equals("9000")) {
|
||||||
change.setState(10);
|
change.setState(10);
|
||||||
}else{
|
} else {
|
||||||
change.setState(101);
|
change.setState(101);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 9){
|
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
|
||||||
System.out.println("\n++++++++"+getValueStringByID(entry, "CurrentStageNumber"));
|
.orElse(-1) == 9) {
|
||||||
if(getValueStringByID(entry, "CurrentStageNumber").equals("1")){
|
if (getValueStringByID(entry, "CurrentStageNumber").equals("1")) {
|
||||||
change.setState(9);
|
change.setState(9);
|
||||||
}else{
|
} else {
|
||||||
change.setState(91);
|
change.setState(91);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
} else {
|
||||||
change.setState(Optional.ofNullable(getValue(entry, "State"))
|
change.setState(Optional.ofNullable(getValue(entry, "State"))
|
||||||
.map(Value::getIntValue)
|
.map(Value::getIntValue)
|
||||||
.orElse(-1));
|
.orElse(-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
System.out.println("\nStatus: "+change.getState());
|
|
||||||
change.setPackageInstanceId(getValueStringByID(entry, "PackageInstanceId"));
|
change.setPackageInstanceId(getValueStringByID(entry, "PackageInstanceId"));
|
||||||
|
|
||||||
change.setResourceName(getValueStringByID(entry, "ResourceName"));
|
change.setResourceName(getValueStringByID(entry, "ResourceName"));
|
||||||
change.setD1(timestampToDateById(entry, "D1"));
|
change.setD1(timestampToDateById(entry, "D1"));
|
||||||
change.setD2(timestampToDateById(entry, "D2"));
|
change.setD2(timestampToDateById(entry, "D2"));
|
||||||
|
|
@ -198,8 +206,6 @@ public class Change {
|
||||||
change.setPlanTime(convertPlanTime(ptHours, ptMinutes));
|
change.setPlanTime(convertPlanTime(ptHours, ptMinutes));
|
||||||
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);
|
||||||
|
|
@ -214,7 +220,7 @@ public class Change {
|
||||||
* @return the full name of the impersonated user
|
* @return the full name of the impersonated user
|
||||||
* @throws ARException if an AR exception occurs
|
* @throws ARException if an AR exception occurs
|
||||||
* @throws NotFoundError if no user or support groups are found with the
|
* @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 {
|
private String processPeopleInfo(ChangeRequest request) throws ARException, NotFoundError {
|
||||||
// Queries for SupportGroup of impersonated User
|
// Queries for SupportGroup of impersonated User
|
||||||
|
|
@ -222,6 +228,8 @@ public class Change {
|
||||||
.addFieldId("FullName", 1000000017)
|
.addFieldId("FullName", 1000000017)
|
||||||
.addFieldId("SupportGroupId", 1000000079)
|
.addFieldId("SupportGroupId", 1000000079)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
System.out.println(api.getUser());
|
||||||
var peopleInfos = api.queryFieldsById("\'Login ID\' = \"" + api.getUser() + "\"",
|
var peopleInfos = api.queryFieldsById("\'Login ID\' = \"" + api.getUser() + "\"",
|
||||||
queryPerson.getFieldIds(),
|
queryPerson.getFieldIds(),
|
||||||
queryPerson.getFormName(), null, 0, 0);
|
queryPerson.getFormName(), null, 0, 0);
|
||||||
|
|
@ -255,7 +263,6 @@ public class Change {
|
||||||
return totalHours;
|
return totalHours;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the {@link Value} of an entry based on the provided description.
|
* Returns the {@link Value} of an entry based on the provided description.
|
||||||
*
|
*
|
||||||
|
|
@ -310,7 +317,10 @@ public class Change {
|
||||||
* @throws ARException if an error occurs during the modification process
|
* @throws ARException if an error occurs during the modification process
|
||||||
* @throws ValidationError
|
* @throws ValidationError
|
||||||
*/
|
*/
|
||||||
public void modifyTimestamp(ChangeUpdateRequest request) throws ARException, ValidationError {
|
public String modifyTimestamp(ChangeUpdateRequest request) throws ARException, ValidationError {
|
||||||
|
// Clear the list before processing a new request
|
||||||
|
listOfFieldValues.clear();
|
||||||
|
|
||||||
String entryId = request.getResourceId();
|
String entryId = request.getResourceId();
|
||||||
String d2 = request.getD2();
|
String d2 = request.getD2();
|
||||||
var dateConverter = new DateConverter();
|
var dateConverter = new DateConverter();
|
||||||
|
|
@ -319,19 +329,26 @@ public class Change {
|
||||||
|
|
||||||
var ts = dateConverter.convertTimestamp(d2);
|
var ts = dateConverter.convertTimestamp(d2);
|
||||||
if (state == 0) {
|
if (state == 0) {
|
||||||
Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket")
|
Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket")
|
||||||
.addFieldValue("d2", 1000000350, new Value(ts)).build();
|
.addFieldValue("d2", 1000000350, new Value(ts)).build();
|
||||||
api.modifyEntry(entryId, query);
|
collectFieldValues(query); // Collect field values
|
||||||
|
return api.modifyEntry(entryId, query);
|
||||||
} else {
|
} else {
|
||||||
Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change")
|
Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change")
|
||||||
.addFieldValue("d2", 1000000350, new Value(ts)).build();
|
.addFieldValue("d2", 1000000350, new Value(ts)).build();
|
||||||
|
collectFieldValues(queryInfrastructureChange); // Collect field values
|
||||||
|
|
||||||
var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"",
|
var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"",
|
||||||
queryInfrastructureChange.getFieldIds(),
|
queryInfrastructureChange.getFieldIds(),
|
||||||
queryInfrastructureChange.getFormName(), null, 0, 0);
|
queryInfrastructureChange.getFormName(), null, 0, 0);
|
||||||
|
|
||||||
api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange);
|
return api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
private void collectFieldValues(Query query) {
|
||||||
|
for (var entry : query.getFieldValues()) {
|
||||||
|
listOfFieldValues.add(entry.getFieldId() + "\": \"" + entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -103,8 +103,6 @@ public class Filter {
|
||||||
var column = current_filter.getColumn();
|
var column = current_filter.getColumn();
|
||||||
var criterias = current_filter.getCriteria();
|
var criterias = current_filter.getCriteria();
|
||||||
|
|
||||||
System.out.println(current_filter + " | ");
|
|
||||||
|
|
||||||
if (column.isEmpty() || criterias.length <= 0) {
|
if (column.isEmpty() || criterias.length <= 0) {
|
||||||
throw new ValidationError("Fields inside filter empty");
|
throw new ValidationError("Fields inside filter empty");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ public class Contract {
|
||||||
this.contracts = new ArrayList<ContractGetResponse>();
|
this.contracts = new ArrayList<ContractGetResponse>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Queries the Remedy AR Server using the provided `api` object to retrieve
|
* Queries the Remedy AR Server using the provided `api` object to retrieve
|
||||||
* Contract IDs
|
* Contract IDs
|
||||||
|
|
@ -40,15 +39,13 @@ public class Contract {
|
||||||
public ArrayList<ContractGetResponse> queryContracts(RemedyJavaAPI api) throws ARException, NotFoundError {
|
public ArrayList<ContractGetResponse> queryContracts(RemedyJavaAPI api) throws ARException, NotFoundError {
|
||||||
ArrayList<ContractGetResponse> allContracts = new ArrayList<ContractGetResponse>();
|
ArrayList<ContractGetResponse> allContracts = new ArrayList<ContractGetResponse>();
|
||||||
|
|
||||||
|
|
||||||
var queryContracts = new Query.QueryBuilder(formName_contracts)
|
var queryContracts = new Query.QueryBuilder(formName_contracts)
|
||||||
.addFieldId("Id", 179)
|
.addFieldId("Id", 179)
|
||||||
.addFieldId("Name", 700008020).build();
|
.addFieldId("Name", 700008020).build();
|
||||||
|
|
||||||
System.out.println("\n### USER: "+api.getUser());
|
|
||||||
|
|
||||||
allContracts = api
|
allContracts = api
|
||||||
.queryFieldsById("\'4\' = \""+api.getUser()+"\"", queryContracts.getFieldIds(), formName_contracts, null,
|
.queryFieldsById("\'4\' = \"" + api.getUser() + "\"", queryContracts.getFieldIds(), formName_contracts,
|
||||||
|
null,
|
||||||
0, 0)
|
0, 0)
|
||||||
.stream()
|
.stream()
|
||||||
.map(entry -> new ContractGetResponse(
|
.map(entry -> new ContractGetResponse(
|
||||||
|
|
@ -57,14 +54,8 @@ public class Contract {
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toCollection(ArrayList::new));
|
.collect(Collectors.toCollection(ArrayList::new));
|
||||||
|
|
||||||
for (ContractGetResponse contractGetResponse : allContracts) {
|
|
||||||
System.out.println(contractGetResponse.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (allContracts.isEmpty()) {
|
if (allContracts.isEmpty()) {
|
||||||
System.out.println("No contracts found in this context");
|
System.out.println("No contracts found in this context");
|
||||||
}
|
}
|
||||||
return allContracts;
|
return allContracts;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
@ -76,7 +88,6 @@ public class Presets {
|
||||||
var guid = preference.get(0).get(prefQuery.getFieldId("GUID"));
|
var guid = preference.get(0).get(prefQuery.getFieldId("GUID"));
|
||||||
if (guid.toString() == null) {
|
if (guid.toString() == null) {
|
||||||
// IF GUID IS NULL PUT SYSTEM DEFAULT INSIDE
|
// IF GUID IS NULL PUT SYSTEM DEFAULT INSIDE
|
||||||
System.out.println("GEHT REIN");
|
|
||||||
var queryPreferenceNewValue = new Query.QueryBuilder(formUserPref)
|
var queryPreferenceNewValue = new Query.QueryBuilder(formUserPref)
|
||||||
.addFieldValue("GUID", 364000001, new Value(sysdefGUID)).build();
|
.addFieldValue("GUID", 364000001, new Value(sysdefGUID)).build();
|
||||||
var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"",
|
var pref = api.queryFieldsById("\'2\'==\"" + api.getUser() + "\"",
|
||||||
|
|
@ -115,19 +126,24 @@ public class Presets {
|
||||||
api.createEntry(savePreference);
|
api.createEntry(savePreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void savePreset(Preset request) throws ARException, NotFoundError {
|
public String 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();
|
||||||
|
|
||||||
api.createEntry(saveQuery);
|
collectFieldValues(saveQuery); // Collect field values
|
||||||
|
return 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,41 +155,51 @@ public class Presets {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePreset(UpdatePresetRequest request) throws ARException {
|
public String 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);
|
return api.modifyEntry(preset.getEntryId(), queryPresets);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renamePreset(RenamePresetRequest request) throws ARException {
|
public String 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);
|
||||||
|
|
||||||
api.modifyEntry(preset.getEntryId(), queryPresets);
|
collectFieldValues(queryPresets);
|
||||||
|
return api.modifyEntry(preset.getEntryId(), queryPresets);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void editUserPreferences(EditUserPreferencesRequest request) throws ARException {
|
public String 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)
|
||||||
.get(0);
|
.get(0);
|
||||||
|
|
||||||
api.modifyEntry(preferences.getEntryId(), queryUserPreferences);
|
return api.modifyEntry(preferences.getEntryId(), queryUserPreferences);
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
|
|
@ -192,10 +218,10 @@ public class Presets {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deletePreset(DeletePresetRequest request) throws ARException {
|
public String deletePreset(DeletePresetRequest request) throws ARException {
|
||||||
var entries = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"", null, formDefault, null, 0, 0)
|
var entries = api.queryFieldsById("\'179\'==\"" + request.getId() + "\"", null, formDefault, null, 0, 0)
|
||||||
.get(0);
|
.get(0);
|
||||||
api.deleteEntry(formDefault, entries.getEntryId());
|
var entryid = api.deleteEntry(formDefault, entries.getEntryId());
|
||||||
|
|
||||||
// SYSTEMDEFAULT
|
// SYSTEMDEFAULT
|
||||||
var sysdef = api.queryFieldsById("\'364000001\'==\"Systemdefault\"", defQuery.getFieldIds(),
|
var sysdef = api.queryFieldsById("\'364000001\'==\"Systemdefault\"", defQuery.getFieldIds(),
|
||||||
|
|
@ -206,6 +232,14 @@ public class Presets {
|
||||||
SelectPresetRequest spr = new SelectPresetRequest();
|
SelectPresetRequest spr = new SelectPresetRequest();
|
||||||
spr.setGuid(sysdefGUID);
|
spr.setGuid(sysdefGUID);
|
||||||
selectPreset(spr);
|
selectPreset(spr);
|
||||||
|
|
||||||
|
return entryid;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 {
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ public class State {
|
||||||
populateStateInfo(stateFields, stateStatusFields, configurationQuery, configurationStatusQuery);
|
populateStateInfo(stateFields, stateStatusFields, configurationQuery, configurationStatusQuery);
|
||||||
|
|
||||||
// Print state information
|
// Print state information
|
||||||
printStateInfo();
|
// printStateInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateStateInfo(List<Entry> stateFields, List<Entry> stateStatusFields,
|
private void populateStateInfo(List<Entry> stateFields, List<Entry> stateStatusFields,
|
||||||
|
|
@ -135,7 +135,7 @@ public class State {
|
||||||
implementerFlag = stateField.get(configurationQuery.getFieldId("implementerFlag")).toString()
|
implementerFlag = stateField.get(configurationQuery.getFieldId("implementerFlag")).toString()
|
||||||
.equals("SETIMPLEMENTER_YES");
|
.equals("SETIMPLEMENTER_YES");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
String engName = stateField.get(configurationQuery.getFieldId("engName")).toString();
|
String engName = stateField.get(configurationQuery.getFieldId("engName")).toString();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package com.nttdata.calender.states;
|
package com.nttdata.calender.states;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
@ -17,6 +20,7 @@ import com.nttdata.calender.api.RemedyJavaAPI;
|
||||||
public class StateChange {
|
public class StateChange {
|
||||||
static final String formName = "ASF:CHG_CAL_Interactions";
|
static final String formName = "ASF:CHG_CAL_Interactions";
|
||||||
private RemedyJavaAPI remedyJavaAPI;
|
private RemedyJavaAPI remedyJavaAPI;
|
||||||
|
ArrayList<String> listOfFieldValues;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the StateChange class with a RemedyJavaAPI instance.
|
* Initializes the StateChange class with a RemedyJavaAPI instance.
|
||||||
|
|
@ -26,6 +30,7 @@ public class StateChange {
|
||||||
@Autowired
|
@Autowired
|
||||||
public StateChange(RemedyJavaAPI remedyJavaAPI) {
|
public StateChange(RemedyJavaAPI remedyJavaAPI) {
|
||||||
this.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
|
* @throws ARException when there's an error creating the entry
|
||||||
*/
|
*/
|
||||||
public String createStateChange(StateChangeRequest request) throws ARException {
|
public String createStateChange(StateChangeRequest request) throws ARException {
|
||||||
|
listOfFieldValues.clear();
|
||||||
|
|
||||||
String ACTION = "STATUSCHANGE";
|
String ACTION = "STATUSCHANGE";
|
||||||
|
|
||||||
|
|
@ -46,12 +52,22 @@ public class StateChange {
|
||||||
ACTION = "RESTART";
|
ACTION = "RESTART";
|
||||||
|
|
||||||
var query = new Query.QueryBuilder(formName)
|
var query = new Query.QueryBuilder(formName)
|
||||||
|
.addFieldValue("Action", 666000001, new Value(ACTION))
|
||||||
.addFieldValue("ChangeNr", 666000002, new Value(request.getChangeNr()))
|
.addFieldValue("ChangeNr", 666000002, new Value(request.getChangeNr()))
|
||||||
.addFieldValue("CurrentState", 666000003, new Value(request.getCurrentState()))
|
.addFieldValue("CurrentState", 666000003, new Value(request.getCurrentState()))
|
||||||
.addFieldValue("NextState", 666000004, new Value(request.getNextState()))
|
.addFieldValue("NextState", 666000004, new Value(request.getNextState()))
|
||||||
.addFieldValue("Action", 666000001, new Value(ACTION))
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
// Print out the field IDs and values
|
||||||
|
for (var entry : query.getFieldValues()) {
|
||||||
|
listOfFieldValues.add(entry.getFieldId() + "\": \"" + entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
return remedyJavaAPI.createEntry(query);
|
return remedyJavaAPI.createEntry(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getListOfFieldValues() {
|
||||||
|
return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue