diff --git a/backend/src/main/java/com/nttdata/calender/DateConverter.java b/backend/src/main/java/com/nttdata/calender/DateConverter.java new file mode 100644 index 0000000..3d23ff6 --- /dev/null +++ b/backend/src/main/java/com/nttdata/calender/DateConverter.java @@ -0,0 +1,38 @@ +package com.nttdata.calender; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.util.TimeZone; + +import com.bmc.arsys.api.Timestamp; +import com.nttdata.calender.errorhandling.ErrorTypes.ValidationError; + +public class DateConverter { + + final String DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; + + public LocalDate convertDateTime(String timestamp) throws ValidationError { + try { + System.out.println(timestamp); + LocalDate date = LocalDate.parse(timestamp, DateTimeFormatter.ofPattern(DATEFORMAT)); + return date; + } catch (DateTimeParseException e) { + throw new ValidationError("Incorrect dateformat in request"); + } + } + + public Timestamp convertTimestamp(String timestamp) throws ValidationError { + SimpleDateFormat sdf = new SimpleDateFormat(DATEFORMAT); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + try { + Timestamp ts = new Timestamp(sdf.parse(timestamp)); + return ts; + } catch (ParseException e) { + throw new ValidationError("Incorrect dateformat in request"); + } + } +} 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 b9c4d07..12ed06c 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -14,6 +14,7 @@ import com.bmc.arsys.api.Entry; import com.bmc.arsys.api.SortInfo; import com.bmc.arsys.api.Timestamp; import com.bmc.arsys.api.Value; +import com.nttdata.calender.DateConverter; import com.nttdata.calender.api.Query; import com.nttdata.calender.api.RemedyJavaAPI; import com.nttdata.calender.changes.query.FilterElement; @@ -360,30 +361,24 @@ public class Change { public void modifyTimestamp(ChangeUpdateRequest request) throws ARException, ValidationError { String entryId = request.getResourceId(); String d2 = request.getD2(); + var dateConverter = new DateConverter(); int state = request.getState(); String changeNr = request.getChangeNr(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSS'Z'"); - sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + var ts = dateConverter.convertTimestamp(d2); + if (state == 0) { + Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); + api.modifyEntry(entryId, query); + } else { + Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); - try { - Timestamp ts = new Timestamp(sdf.parse(d2)); - if (state == 0) { - Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket") - .addFieldValue("d2", 1000000350, new Value(ts)).build(); - api.modifyEntry(entryId, query); - } else { - Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change") - .addFieldValue("d2", 1000000350, new Value(ts)).build(); + var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"", + queryInfrastructureChange.getFieldIds(), + queryInfrastructureChange.getFormName(), null, 0, 0); - var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"", - queryInfrastructureChange.getFieldIds(), - queryInfrastructureChange.getFormName(), null, 0, 0); - - api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange); - } - } catch (ParseException e) { - throw new ValidationError("Incorrect dateformat in request"); + api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange); } } diff --git a/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java b/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java index 879dd8f..ea3f875 100644 --- a/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java +++ b/backend/src/main/java/com/nttdata/calender/planTimes/PlanTimes.java @@ -13,6 +13,7 @@ import java.util.Objects; import com.bmc.arsys.api.ARException; import com.bmc.thirdparty.org.springframework.cglib.core.Local; +import com.nttdata.calender.DateConverter; import com.nttdata.calender.api.Query; import com.nttdata.calender.api.RemedyJavaAPI; import com.nttdata.calender.changes.ChangeItem; @@ -29,9 +30,10 @@ public class PlanTimes { } public void setPlanTimes(PlanTimesRequest req) throws ARException, ValidationError { + var dateConverter = new DateConverter(); + var startDate = dateConverter.convertDateTime(req.getRenderStartDate()); + var endDate = dateConverter.convertDateTime(req.getRenderEndDate()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); - LocalDate startDate = LocalDate.parse(req.getRenderStartDate(), formatter); - LocalDate endDate = LocalDate.parse(req.getRenderEndDate(), formatter); var queryChanges = new Query.QueryBuilder(formName).addFieldId("D2", 1000000350) .addFieldId("ChangeNr", 1000000182).addFieldId("PlanTimeHours", 666000009)