diff --git a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java index a8feb77..7255f4b 100644 --- a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -40,8 +40,8 @@ import com.nttdata.calender.states.StateChange; import com.nttdata.calender.states.StateChangeRequest; import com.nttdata.calender.states.StateResponse; import com.nttdata.calender.supportgroup.SupportGroup; - -import net.bytebuddy.asm.Advice.Origin; +import com.nttdata.calender.urlConstructor.UrlConstructor; +import com.nttdata.calender.urlConstructor.UrlResponse; /** * REST Controller for Remedy Data @@ -53,15 +53,17 @@ public class KalenderRestController { private final Implementer implementer; private final PackageType packageType; private final Approval approval; + private final UrlConstructor urlConstructor; @Autowired public KalenderRestController(RemedyJavaAPI javaAPI, Change change, Implementer implementer, - PackageType packageType, Approval approval) { + PackageType packageType, Approval approval, UrlConstructor urlConstructor) { this.javaAPI = javaAPI; this.change = change; this.implementer = implementer; this.packageType = packageType; this.approval = approval; + this.urlConstructor = urlConstructor; } /** @@ -111,6 +113,12 @@ public class KalenderRestController { return ResponseEntity.internalServerError().body("Support Groups couldnt be fetched."); } + @CrossOrigin("*") + @GetMapping("/api/getUrl") + public UrlResponse getLink() throws ARException { + return urlConstructor.construct(javaAPI); + } + /** * * Handles a GET request to retrieve the user's support group. diff --git a/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlConstructor.java b/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlConstructor.java new file mode 100644 index 0000000..c504607 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlConstructor.java @@ -0,0 +1,25 @@ +package com.nttdata.calender.urlConstructor; + +import org.springframework.stereotype.Service; + +import com.bmc.arsys.api.ARException; +import com.bmc.arsys.api.Constants; +import com.nttdata.calender.api.RemedyJavaAPI; + +@Service +public class UrlConstructor { + String viewForm = "/SHR%3ALandingConsole/Default+Administrator+View/?mode=search&F304255500="; + String getPkg = "&F1000000076=FormOpenNoAppList&F303647600=SearchTicketWithQual&F304255610="; + + public UrlResponse construct(RemedyJavaAPI api) throws ARException { + var server = api.getServer(); + var setting = new int[] { Constants.AR_SERVER_INFO_SERVER_NAME, Constants.AR_SERVER_INFO_DEFAULT_WEB_PATH }; + var serverInfo = server.getServerInfo(setting); + var midTierLink = serverInfo.get(Constants.AR_SERVER_INFO_DEFAULT_WEB_PATH).getValue().toString() + "/forms/"; + var shortName = midTierLink.replaceFirst("https://", "").substring(0, midTierLink.indexOf(".")); + + var viewFormUrl = midTierLink + shortName + viewForm; + + return new UrlResponse(getPkg, viewFormUrl); + } +} diff --git a/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlResponse.java b/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlResponse.java new file mode 100644 index 0000000..412f9cc --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/urlConstructor/UrlResponse.java @@ -0,0 +1,27 @@ +package com.nttdata.calender.urlConstructor; + +public class UrlResponse { + private String entryUrl; + private String viewFormUrl; + + public UrlResponse(String entryUrl, String viewFormUrl) { + this.entryUrl = entryUrl; + this.viewFormUrl = viewFormUrl; + } + + public String getEntryUrl() { + return this.entryUrl; + } + + public void setEntryUrl(String entryUrl) { + this.entryUrl = entryUrl; + } + + public String getViewFormUrl() { + return this.viewFormUrl; + } + + public void setViewFormUrl(String viewFormUrl) { + this.viewFormUrl = viewFormUrl; + } +}