From 993f2e4f6d97ce39fd7031ea201ca3f93138b9dd Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Wed, 24 May 2023 10:57:54 +0200 Subject: [PATCH 01/12] getter setter --- .../java/com/nttdata/calender/changes/ChangeItem.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java index f9214fd..83fd1fe 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -31,6 +31,7 @@ public class ChangeItem { private Date D2; private Date D3; private Date D4; + private boolean approvalFlag; /** * @@ -156,6 +157,14 @@ public class ChangeItem { this.changeImplementerPersonId = changeImplementerPersonId; } + public boolean getApprovalFlag() { + return this.approvalFlag; + } + + public void setApprovalFlag(boolean approvalFlag) { + this.approvalFlag = approvalFlag; + } + /** * * Gets the status reason of the change item. From 4ecaea20f87fd07a38ba27e9de302c2953f86d9b Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Wed, 24 May 2023 11:11:56 +0200 Subject: [PATCH 02/12] check Approval List & setApprovalFlag --- .../com/nttdata/calender/changes/Change.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index 618d7c8..69c15fe 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -135,7 +135,11 @@ public class Change { change.setChangeImplementerPersonId(getValueStringByID(entry, "ChangeImplementerPersonId")); change.setPackageType(getValueStringByID(entry, "PackageType")); change.setContract(getValueStringByID(entry, "Contract")); - + try { + change.setApprovalFlag(inApprovalList(api.getUser(), getValueStringByID(entry, "ChangerNr"))); + } catch (ARException e) { + e.printStackTrace(); + } change.setImplementerEdit( Optional.ofNullable(entry.get(queryChange.getFieldId("ChangeCoordinator"))) .map(Object::toString) @@ -149,6 +153,17 @@ public class Change { return new ChangeResponse(entriesSize, changes); } + public boolean inApprovalList(String user, String changeNr) throws ARException { + var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") + .addFieldId("Approvers", 13207).build(); + + var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", + queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); + + String approvers = approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); + return approvers.contains(user); + } + /** * Returns the {@link Value} of an entry based on the provided description. * From 64b091697027cfea41d537dac8b2d32301f32af6 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Wed, 24 May 2023 12:43:20 +0200 Subject: [PATCH 03/12] fixed/modified setApprovalFlag --- .../com/nttdata/calender/changes/Change.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index 69c15fe..af618e6 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -135,34 +135,34 @@ public class Change { change.setChangeImplementerPersonId(getValueStringByID(entry, "ChangeImplementerPersonId")); change.setPackageType(getValueStringByID(entry, "PackageType")); change.setContract(getValueStringByID(entry, "Contract")); - try { - change.setApprovalFlag(inApprovalList(api.getUser(), getValueStringByID(entry, "ChangerNr"))); - } catch (ARException e) { - e.printStackTrace(); - } change.setImplementerEdit( Optional.ofNullable(entry.get(queryChange.getFieldId("ChangeCoordinator"))) .map(Object::toString) .filter(peopleFullName::equals) .isPresent()); + try { + var flag = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); + change.setApprovalFlag(flag); + } catch (ARException e) { + e.printStackTrace(); + } changes.add(change); }); api.freeImpersonatedUser(); - return new ChangeResponse(entriesSize, changes); } public boolean inApprovalList(String user, String changeNr) throws ARException { var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") - .addFieldId("Approvers", 13207).build(); - + .addFieldId("Approvers", 13207).build(); + var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", - queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); - - String approvers = approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); - return approvers.contains(user); - } + queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); + + var approvers = !approversOI.isEmpty() ? approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString() : null; + return approvers != null ? approvers.contains(user) : false; + } /** * Returns the {@link Value} of an entry based on the provided description. From fd8e0ec91b7472151b081d646708275f110c9619 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Wed, 24 May 2023 14:25:01 +0200 Subject: [PATCH 04/12] check if change in appr. list and right status --- .../java/com/nttdata/calender/changes/Change.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index af618e6..9c0677f 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -141,7 +141,8 @@ public class Change { .filter(peopleFullName::equals) .isPresent()); try { - var flag = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); + var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); + var flag = Flag(inApproval, getValue(entry, "State").getIntValue()); change.setApprovalFlag(flag); } catch (ARException e) { e.printStackTrace(); @@ -159,11 +160,17 @@ public class Change { var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); - - var approvers = !approversOI.isEmpty() ? approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString() : null; + + var approvers = approversOI.isEmpty() ? null : approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); return approvers != null ? approvers.contains(user) : false; } + public boolean Flag(boolean approval, int status) { + boolean approvableStatus = (status == 1 || status == 10); + return approval && approvableStatus; + } + + /** * Returns the {@link Value} of an entry based on the provided description. * From e875688aab6eec6a4fcc0e487476146648d2d118 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 09:23:34 +0200 Subject: [PATCH 05/12] replaced 1 with 3 flags --- .../com/nttdata/calender/changes/Change.java | 3 +- .../nttdata/calender/changes/ChangeItem.java | 28 +++++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index 9c0677f..b09389c 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -143,7 +143,8 @@ public class Change { try { var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); var flag = Flag(inApproval, getValue(entry, "State").getIntValue()); - change.setApprovalFlag(flag); + change.setFlagApprove(flag); + change.setFlagReject(flag); } catch (ARException e) { e.printStackTrace(); } diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java index 83fd1fe..50b7bf5 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -31,7 +31,9 @@ public class ChangeItem { private Date D2; private Date D3; private Date D4; - private boolean approvalFlag; + private boolean flagApprove; + private boolean flagReject; + private boolean flagCancel; /** * @@ -157,12 +159,28 @@ public class ChangeItem { this.changeImplementerPersonId = changeImplementerPersonId; } - public boolean getApprovalFlag() { - return this.approvalFlag; + public boolean getFlagApprove() { + return this.flagApprove; } - public void setApprovalFlag(boolean approvalFlag) { - this.approvalFlag = approvalFlag; + public void setFlagApprove(boolean flagApprove) { + this.flagApprove = flagApprove; + } + + public boolean getFlagReject() { + return this.flagReject; + } + + public void setFlagReject(boolean flagReject) { + this.flagReject = flagReject; + } + + public boolean getFlagCancel() { + return this.flagCancel; + } + + public void setFlagCancel(boolean flagCancel) { + this.flagCancel = flagCancel; } /** From 48f94b3353b2aec22ed278573fa73124103e6663 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 11:36:49 +0200 Subject: [PATCH 06/12] implemented approve, reject and cancel flags --- .../com/nttdata/calender/changes/Change.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index b09389c..ba2e9e8 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -142,9 +142,14 @@ public class Change { .isPresent()); try { var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); - var flag = Flag(inApproval, getValue(entry, "State").getIntValue()); - change.setFlagApprove(flag); - change.setFlagReject(flag); + + var approveAndRejectFlag = approveAndReject(inApproval, getValue(entry, "State").getIntValue()); + change.setFlagApprove(approveAndRejectFlag); + change.setFlagReject(approveAndRejectFlag); + + var cancelFlag = cancel(getValueStringByID(entry, "SupportGroupId"), getValue(entry, "State").getIntValue()); + change.setFlagCancel(cancelFlag); + } catch (ARException e) { e.printStackTrace(); } @@ -166,11 +171,21 @@ public class Change { return approvers != null ? approvers.contains(user) : false; } - public boolean Flag(boolean approval, int status) { + public boolean approveAndReject(boolean approval, int status) { boolean approvableStatus = (status == 1 || status == 10); return approval && approvableStatus; } + public boolean cancel(String supportGroupId, int status) throws ARException { + var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014).build(); + var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0) + .get(0).get(queryRoles.getFieldId("Role")).toString(); + + boolean approvableStatus = status == 1; + boolean isChangeManager = role.equals("Change Manager"); + return approvableStatus && isChangeManager; + } + /** * Returns the {@link Value} of an entry based on the provided description. From 6e34a72a8b879d124da0f95f102ec0d6e0a537c5 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 11:54:57 +0200 Subject: [PATCH 07/12] implemented toApproval flag --- .../com/nttdata/calender/changes/Change.java | 21 ++++++++++++------- .../nttdata/calender/changes/ChangeItem.java | 9 ++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index ba2e9e8..c4d0835 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -141,15 +141,17 @@ public class Change { .filter(peopleFullName::equals) .isPresent()); try { + var currentState = getValue(entry, "State").getIntValue(); var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); - var approveAndRejectFlag = approveAndReject(inApproval, getValue(entry, "State").getIntValue()); - change.setFlagApprove(approveAndRejectFlag); - change.setFlagReject(approveAndRejectFlag); - - var cancelFlag = cancel(getValueStringByID(entry, "SupportGroupId"), getValue(entry, "State").getIntValue()); - change.setFlagCancel(cancelFlag); + var approve_reject = flagApproval(inApproval, currentState); + change.setFlagApprove(approve_reject); + change.setFlagReject(approve_reject); + var cancel = flagCancel(getValueStringByID(entry, "SupportGroupId"), currentState); + change.setFlagCancel(cancel); + + change.setFlagToApproval(flagToApproval(currentState)); } catch (ARException e) { e.printStackTrace(); } @@ -171,12 +173,12 @@ public class Change { return approvers != null ? approvers.contains(user) : false; } - public boolean approveAndReject(boolean approval, int status) { + public boolean flagApproval(boolean approval, int status) { boolean approvableStatus = (status == 1 || status == 10); return approval && approvableStatus; } - public boolean cancel(String supportGroupId, int status) throws ARException { + public boolean flagCancel(String supportGroupId, int status) throws ARException { var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014).build(); var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0) .get(0).get(queryRoles.getFieldId("Role")).toString(); @@ -186,6 +188,9 @@ public class Change { return approvableStatus && isChangeManager; } + public boolean flagToApproval(int status) { + return status == 0; + } /** * Returns the {@link Value} of an entry based on the provided description. diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java index 50b7bf5..9008c91 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -31,6 +31,7 @@ public class ChangeItem { private Date D2; private Date D3; private Date D4; + private boolean flagToApproval; private boolean flagApprove; private boolean flagReject; private boolean flagCancel; @@ -159,6 +160,14 @@ public class ChangeItem { this.changeImplementerPersonId = changeImplementerPersonId; } + public boolean getFlagToApproval() { + return this.flagToApproval; + } + + public void setFlagToApproval(boolean flagToApproval) { + this.flagToApproval = flagToApproval; + } + public boolean getFlagApprove() { return this.flagApprove; } From a4a153ec6ba5a4f97a1a8940f9671395361f24b3 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 13:52:22 +0200 Subject: [PATCH 08/12] changed foreach to for loop - to get rid of try catch --- .../com/nttdata/calender/changes/Change.java | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index c4d0835..3c28183 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -112,7 +112,8 @@ public class Change { var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName()); System.out.println(entriesSize); var changes = new ArrayList(); - entries.forEach(entry -> { + + for (var entry : entries) { var change = new ChangeItem(entry.getEntryId()); change.setChangeNr(getValueStringByID(entry, "ChangeNr")); change.setSupportGroup(getValueStringByID(entry, "SupportGroup")); @@ -140,23 +141,20 @@ public class Change { .map(Object::toString) .filter(peopleFullName::equals) .isPresent()); - try { - var currentState = getValue(entry, "State").getIntValue(); - var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); - var approve_reject = flagApproval(inApproval, currentState); - change.setFlagApprove(approve_reject); - change.setFlagReject(approve_reject); - - var cancel = flagCancel(getValueStringByID(entry, "SupportGroupId"), currentState); - change.setFlagCancel(cancel); + var currentState = getValue(entry, "State").getIntValue(); + + var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); + var cancel = flagCancel(getValueStringByID(entry, "SupportGroupId"), currentState); + var approve_reject = flagApproval(inApproval, currentState); + + change.setFlagApprove(approve_reject); + change.setFlagReject(approve_reject); + change.setFlagCancel(cancel); + change.setFlagToApproval(flagToApproval(currentState)); - change.setFlagToApproval(flagToApproval(currentState)); - } catch (ARException e) { - e.printStackTrace(); - } changes.add(change); - }); + } api.freeImpersonatedUser(); return new ChangeResponse(entriesSize, changes); @@ -168,8 +166,9 @@ public class Change { var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); - - var approvers = approversOI.isEmpty() ? null : approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); + + var approvers = approversOI.isEmpty() ? null + : approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); return approvers != null ? approvers.contains(user) : false; } @@ -179,9 +178,11 @@ public class Change { } public boolean flagCancel(String supportGroupId, int status) throws ARException { - var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014).build(); - var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0) - .get(0).get(queryRoles.getFieldId("Role")).toString(); + var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014) + .build(); + var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", + queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0) + .get(0).get(queryRoles.getFieldId("Role")).toString(); boolean approvableStatus = status == 1; boolean isChangeManager = role.equals("Change Manager"); From ae34329e00674a5bfa45eb567cf26c40cfeda761 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 15:06:56 +0200 Subject: [PATCH 09/12] changed flagToApproval -> flagPermit --- .../com/nttdata/calender/changes/Change.java | 38 +++++++++---------- .../nttdata/calender/changes/ChangeItem.java | 10 ++--- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index 3c28183..fdb93ce 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -142,16 +142,13 @@ public class Change { .filter(peopleFullName::equals) .isPresent()); - var currentState = getValue(entry, "State").getIntValue(); - + var state = getValue(entry, "State").getIntValue(); var inApproval = inApprovalList(api.getUser(), getValueStringByID(entry, "ChangeNr")); - var cancel = flagCancel(getValueStringByID(entry, "SupportGroupId"), currentState); - var approve_reject = flagApproval(inApproval, currentState); - change.setFlagApprove(approve_reject); - change.setFlagReject(approve_reject); - change.setFlagCancel(cancel); - change.setFlagToApproval(flagToApproval(currentState)); + change.setFlagPermit(flagPermit(state)); + change.setFlagApprove(flagApproval(inApproval, state)); + change.setFlagReject(flagApproval(inApproval, state)); + change.setFlagCancel(flagCancel(getValueStringByID(entry, "SupportGroupId"), state)); changes.add(change); } @@ -160,18 +157,6 @@ public class Change { return new ChangeResponse(entriesSize, changes); } - public boolean inApprovalList(String user, String changeNr) throws ARException { - var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") - .addFieldId("Approvers", 13207).build(); - - var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", - queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); - - var approvers = approversOI.isEmpty() ? null - : approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); - return approvers != null ? approvers.contains(user) : false; - } - public boolean flagApproval(boolean approval, int status) { boolean approvableStatus = (status == 1 || status == 10); return approval && approvableStatus; @@ -186,13 +171,24 @@ public class Change { boolean approvableStatus = status == 1; boolean isChangeManager = role.equals("Change Manager"); + return approvableStatus && isChangeManager; } - public boolean flagToApproval(int status) { + public boolean flagPermit(int status) { return status == 0; } + public boolean inApprovalList(String user, String changeNr) throws ARException { + var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") + .addFieldId("Approvers", 13207).build(); + var approversOI = api.queryFieldsById("\'Ticketnumber\' = \"" + changeNr + "\"", + queryApprovalList.getFieldIds(), queryApprovalList.getFormName(), null, 0, 0); + var approvers = approversOI.isEmpty() ? null + : approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); + return approvers != null ? approvers.contains(user) : false; + } + /** * Returns the {@link Value} of an entry based on the provided description. * diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java index 9008c91..1f1f8f0 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -31,7 +31,7 @@ public class ChangeItem { private Date D2; private Date D3; private Date D4; - private boolean flagToApproval; + private boolean flagPermit; private boolean flagApprove; private boolean flagReject; private boolean flagCancel; @@ -160,12 +160,12 @@ public class ChangeItem { this.changeImplementerPersonId = changeImplementerPersonId; } - public boolean getFlagToApproval() { - return this.flagToApproval; + public boolean getFlagPermit() { + return this.flagPermit; } - public void setFlagToApproval(boolean flagToApproval) { - this.flagToApproval = flagToApproval; + public void setFlagPermit(boolean flagPermit) { + this.flagPermit = flagPermit; } public boolean getFlagApprove() { From 4170699f53108f631ccb7b68f3ed530f21915ae7 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 15:33:33 +0200 Subject: [PATCH 10/12] commented things that might be unecessary - until checked --- .../java/com/nttdata/calender/approval/Approval.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/com/nttdata/calender/approval/Approval.java b/backend/src/main/java/com/nttdata/calender/approval/Approval.java index bcb253c..1cd03a7 100644 --- a/backend/src/main/java/com/nttdata/calender/approval/Approval.java +++ b/backend/src/main/java/com/nttdata/calender/approval/Approval.java @@ -33,7 +33,6 @@ public class Approval { */ public String update(ApprovalUpdateRequest request) throws ARException { remedyJavaAPI.impersonateUser("ext_StanzPa"); - String user = remedyJavaAPI.getUser(); String action = "APPROVAL"; var queryUpdate = new Query.QueryBuilder("ASF:CHG_CAL_Interactions") @@ -42,19 +41,24 @@ public class Approval { .addFieldValue("ApprovalAction", 1000003264, request.getApprovalActionValue()) .build(); + /* + String user = remedyJavaAPI.getUser(); var queryChanges = new Query.QueryBuilder("ASF:WI_TAS_Paket") .addFieldId("ChangeNr", 1000000182) .addFieldId("ActualStatus", 7) .build(); + Entry change = remedyJavaAPI .queryFieldsById("\'Infrastructure Change ID\' = \"" + request.getChangeNrValue().toString() + "\"", queryChanges.getFieldIds(), queryChanges.getFormName(), null, 0, 0) .get(0); + int approvalAction = queryUpdate.getFieldValue("ApprovalAction").getIntValue(); var actualStatus = change.get(queryChanges.getFieldId("ActualStatus")); + if (approvalAction == 1 || approvalAction == 2) { if (inApprovalList(user, request.getChangeNr())) return this.remedyJavaAPI.createEntry(queryUpdate); @@ -70,6 +74,9 @@ public class Approval { } else { return "invalid approval status (must be 1, 2 or 3)"; } + */ + + return this.remedyJavaAPI.createEntry(queryUpdate); } /** @@ -80,6 +87,7 @@ public class Approval { * @return True if the user is in the approval list, false otherwise * @throws ARException If an error occurs during the query */ + /* public boolean inApprovalList(String user, String changeNr) throws ARException { var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") .addFieldId("Approvers", 13207).build(); @@ -90,4 +98,5 @@ public class Approval { String approvers = approversOI.get(0).get(queryApprovalList.getFieldId("Approvers")).toString(); return approvers.contains(user); } + */ } From 6746f0fa0e7f665219f16b86d593d59a9fee3b39 Mon Sep 17 00:00:00 2001 From: Said Gedik Date: Thu, 25 May 2023 16:05:21 +0200 Subject: [PATCH 11/12] added comments/documentation --- .../com/nttdata/calender/changes/Change.java | 57 ++++++++++++++----- .../nttdata/calender/changes/ChangeItem.java | 49 +++++++++++++++- 2 files changed, 92 insertions(+), 14 deletions(-) diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index fdb93ce..d0fd1bc 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -157,28 +157,61 @@ public class Change { return new ChangeResponse(entriesSize, changes); } - public boolean flagApproval(boolean approval, int status) { - boolean approvableStatus = (status == 1 || status == 10); - return approval && approvableStatus; + /** + * Determines if the change item can be approved based on the approval status + * and the current state. + * + * @param approval The flag indicating whether the change item has been + * approved. + * @param state The current state of the change item. + * @return {@code true} if the change item can be approved, {@code false} + * otherwise. + */ + public boolean flagApproval(boolean approval, int state) { + boolean approvableState = (state == 1 || state == 10); + return approval && approvableState; } - public boolean flagCancel(String supportGroupId, int status) throws ARException { + /** + * Determines if the change item can be canceled based on the support group ID + * and the current state. + * + * @param supportGroupId The ID of the support group associated with the change item + * @param state The current state of the change item + * @return {@code true} if the change item can be canceled, {@code false} otherwise. + * @throws ARException if an error occurs during the operation + */ + public boolean flagCancel(String supportGroupId, int state) throws ARException { var queryRoles = new Query.QueryBuilder("CTM:SupportGroupFuncRoleLookUp").addFieldId("Role", 1000000014) .build(); var role = api.queryFieldsById("\'Support Group ID\' = \"" + supportGroupId + "\"", queryRoles.getFieldIds(), queryRoles.getFormName(), null, 0, 0) .get(0).get(queryRoles.getFieldId("Role")).toString(); - boolean approvableStatus = status == 1; + boolean approvableState = state == 1; boolean isChangeManager = role.equals("Change Manager"); - - return approvableStatus && isChangeManager; + + return approvableState && isChangeManager; } - public boolean flagPermit(int status) { - return status == 0; + /** + * Determines if the change item has a permit based on the current state. + * + * @param state The current state of the change item. + * @return {@code true} if the change item has a permit, {@code false} otherwise. + */ + public boolean flagPermit(int state) { + return state == 0; } + /** + * Checks if the logged in user is in the approval list for the specified change item. + * + * @param user The username of the user to check + * @param changeNr The change number of the change item + * @return {@code true} if the user is in the approval list, {@code false} otherwise. + * @throws ARException if an error occurs during the operation + */ public boolean inApprovalList(String user, String changeNr) throws ARException { var queryApprovalList = new Query.QueryBuilder("ASF:OverviewConsole_TicketsJoinAPDetailSignature") .addFieldId("Approvers", 13207).build(); @@ -193,8 +226,7 @@ public class Change { * Returns the {@link Value} of an entry based on the provided description. * * @param entry the {@link Entry} from which a value will be retrieved - * @param description the name of the field from which the value should be - * retrieved + * @param description the name of the field from which the value should be retrieved * @return the value of the entry */ private Value getValue(Entry entry, String description) { @@ -206,8 +238,7 @@ public class Change { * timestamp is null. * * @param entry the {@link Entry} containing the timestamp value - * @param description the description of the field containing the timestamp - * value + * @param description the description of the field containing the timestamp value * @return the converted {@link Date} or null if the timestamp is null */ private Date timestampToDateById(Entry entry, String description) { diff --git a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java index 1f1f8f0..2c35558 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java +++ b/backend/src/main/java/com/nttdata/calender/changes/ChangeItem.java @@ -160,40 +160,87 @@ public class ChangeItem { this.changeImplementerPersonId = changeImplementerPersonId; } + /** + * Retrieves the flag indicating whether the change item has a permit. + * + * @return {@code true} if the change item has a permit, {@code false} + * otherwise. + */ public boolean getFlagPermit() { return this.flagPermit; } + /** + * Sets the flag indicating whether the change item has a permit. + * + * @param flagPermit {@code true} if the change item has a permit, {@code false} + * otherwise. + */ public void setFlagPermit(boolean flagPermit) { this.flagPermit = flagPermit; } + /** + * Retrieves the flag indicating whether the change item has been approved. + * + * @return {@code true} if the change item has been approved, {@code false} + * otherwise. + */ public boolean getFlagApprove() { return this.flagApprove; } + /** + * Sets the flag indicating whether the change item has been approved. + * + * @param flagApprove {@code true} if the change item has been approved, + * {@code false} otherwise. + */ public void setFlagApprove(boolean flagApprove) { this.flagApprove = flagApprove; } + /** + * Retrieves the flag indicating whether the change item has been rejected. + * + * @return {@code true} if the change item has been rejected, {@code false} + * otherwise. + */ public boolean getFlagReject() { return this.flagReject; } + /** + * Sets the flag indicating whether the change item has been rejected. + * + * @param flagReject {@code true} if the change item has been rejected, + * {@code false} otherwise. + */ public void setFlagReject(boolean flagReject) { this.flagReject = flagReject; } + /** + * Retrieves the flag indicating whether the change item has been canceled. + * + * @return {@code true} if the change item has been canceled, {@code false} + * otherwise. + */ public boolean getFlagCancel() { return this.flagCancel; } + /** + * Sets the flag indicating whether the change item has been canceled. + * + * @param flagCancel {@code true} if the change item has been canceled, + * {@code false} otherwise. + */ public void setFlagCancel(boolean flagCancel) { this.flagCancel = flagCancel; } /** - * * Gets the status reason of the change item. * * @return String that represents the status reason of the change item. From 352e0b76a2357a576d643a695621dbce8a59b7c9 Mon Sep 17 00:00:00 2001 From: manueltauber Date: Tue, 30 May 2023 15:08:57 +0200 Subject: [PATCH 12/12] test --- backend/error-2023-05-30-14-56-1.log | 60 ++++++++++++++++++++++++++++ backend/warn-2023-05-30-14-56-1.log | 60 ++++++++++++++++++++++++++++ frontend/src/app/data.service.ts | 11 ++++- 3 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 backend/error-2023-05-30-14-56-1.log create mode 100644 backend/warn-2023-05-30-14-56-1.log diff --git a/backend/error-2023-05-30-14-56-1.log b/backend/error-2023-05-30-14-56-1.log new file mode 100644 index 0000000..ceb7927 --- /dev/null +++ b/backend/error-2023-05-30-14-56-1.log @@ -0,0 +1,60 @@ +2023-05-30-13:20:05 ERROR [] +2023-05-30-14:56:19 ERROR ERROR (6663003): ; User can not be used as a change implementer for this ticket +ERROR (6663003): ; User can not be used as a change implementer for this ticket + at com.bmc.arsys.apitransport.ApiProxyJRpcBase.arCall(ApiProxyJRpcBase.java:300) + at com.bmc.arsys.apitransport.ApiProxyJRpcBase.arCall(ApiProxyJRpcBase.java:172) + at com.bmc.arsys.api.ProxyJRpc.ARCreateEntry(ProxyJRpc.java:1302) + at com.bmc.arsys.api.ARServerUser.createEntry(ARServerUser.java:4418) + at com.nttdata.calender.api.RemedyJavaAPI.createEntry(RemedyJavaAPI.java:136) + at com.nttdata.calender.implementer.Implementer.update(Implementer.java:46) + at com.nttdata.calender.api.KalenderRestController.updateImplementer(KalenderRestController.java:236) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:566) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:665) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) + at java.base/java.lang.Thread.run(Thread.java:834) diff --git a/backend/warn-2023-05-30-14-56-1.log b/backend/warn-2023-05-30-14-56-1.log new file mode 100644 index 0000000..5a2690e --- /dev/null +++ b/backend/warn-2023-05-30-14-56-1.log @@ -0,0 +1,60 @@ +2023-05-30-13:20:05 ERROR [] +2023-05-30-14:56:19 ERROR ERROR (6663003): ; User can not be used as a change implementer for this ticket +com.bmc.arsys.api.ARException: ERROR (6663003): ; User can not be used as a change implementer for this ticket + at com.bmc.arsys.apitransport.ApiProxyJRpcBase.arCall(ApiProxyJRpcBase.java:300) ~[arapi-91_build009.jar:9.1.10-SNAPSHOT] + at com.bmc.arsys.apitransport.ApiProxyJRpcBase.arCall(ApiProxyJRpcBase.java:172) ~[arapi-91_build009.jar:9.1.10-SNAPSHOT] + at com.bmc.arsys.api.ProxyJRpc.ARCreateEntry(ProxyJRpc.java:1302) ~[arapi-91_build009.jar:9.1.10-SNAPSHOT] + at com.bmc.arsys.api.ARServerUser.createEntry(ARServerUser.java:4418) ~[arapi-91_build009.jar:9.1.10-SNAPSHOT] + at com.nttdata.calender.api.RemedyJavaAPI.createEntry(RemedyJavaAPI.java:136) ~[classes/:?] + at com.nttdata.calender.implementer.Implementer.update(Implementer.java:46) ~[classes/:?] + at com.nttdata.calender.api.KalenderRestController.updateImplementer(KalenderRestController.java:236) ~[classes/:?] + at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] + at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] + at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] + at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.25.jar:5.3.25] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) [spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) [spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.25.jar:5.3.25] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.25.jar:5.3.25] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:665) [javax.servlet-api-4.0.1.jar:4.0.1] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.25.jar:5.3.25] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) [javax.servlet-api-4.0.1.jar:4.0.1] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.25.jar:5.3.25] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.25.jar:5.3.25] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.25.jar:5.3.25] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.25.jar:5.3.25] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.25.jar:5.3.25] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.25.jar:5.3.25] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:177) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.71.jar:9.0.71] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.71.jar:9.0.71] + at java.lang.Thread.run(Thread.java:834) [?:?] diff --git a/frontend/src/app/data.service.ts b/frontend/src/app/data.service.ts index e557ecc..44c4cf5 100644 --- a/frontend/src/app/data.service.ts +++ b/frontend/src/app/data.service.ts @@ -230,7 +230,7 @@ export class DataService { console.log(dataJson); this.http.post('http://localhost:8080/api/getChanges', dataJson) .subscribe((response:any)=>{ - // console.log(response); + console.log(response); this.totalSize = response.totalSize; response.changes.forEach(resp=>{ let tasks : any[] = []; @@ -274,7 +274,14 @@ export class DataService { ); } - res.push({resourceId: resp.resourceId, approvalStatus: this.validateApproval(resp.approvalStatus), statusReason: resp.statusReason , changeNr: resp.changeNr, resourceName: resp.resourceName, vertrag: resp.contract, vertragName: this.getContractName(resp.contract), isExpand: false ,isRes: true, state: resp.state, stateName: this.getStateNameById(resp.state), supportGroup: resp.supportGroup, tasks: tasks, supportGroupId: resp.supportGroupId, implementerEdit: resp.implementerEdit}); + res.push({resourceId: resp.resourceId, approvalStatus: this.validateApproval(resp.approvalStatus), statusReason: resp.statusReason, + changeNr: resp.changeNr, resourceName: resp.resourceName, + vertrag: resp.contract, vertragName: this.getContractName(resp.contract), isExpand: false, + isRes: true, state: resp.state, stateName: this.getStateNameById(resp.state), + supportGroup: resp.supportGroup, tasks: tasks, supportGroupId: resp.supportGroupId, + implementerEdit: resp.implementerEdit, flagApprove: resp.flagApprove, flagCancel: resp.flagChancel, flagPermit: resp.flagPermit, flagReject: resp.flagReject + + }); })