From 31d0031058f741e7fb7016fe97f6091c93f337d3 Mon Sep 17 00:00:00 2001 From: naneey Date: Mon, 9 Oct 2023 15:08:25 +0545 Subject: [PATCH] chore: getter for milestone formated --- .../icon/cps/score/cpscore/CPSCore.java | 67 +++++++++++++++++-- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/CPSCore/src/main/java/community/icon/cps/score/cpscore/CPSCore.java b/CPSCore/src/main/java/community/icon/cps/score/cpscore/CPSCore.java index 00a9d705..54537625 100644 --- a/CPSCore/src/main/java/community/icon/cps/score/cpscore/CPSCore.java +++ b/CPSCore/src/main/java/community/icon/cps/score/cpscore/CPSCore.java @@ -1232,8 +1232,6 @@ private void updateProgressReportResult() { boolean _budget_adjustment = (boolean) _report_result.get(BUDGET_ADJUSTMENT); - // checking which prep(s) did not vote the progress report - checkInactivePreps(ProgressReportDataDb.votersList.at(progressPrefix));// TODO: fix this, voterList to be where // If a progress report have any budget_adjustment, then it checks the budget adjustment first if (_budget_adjustment && getBudgetAdjustmentFeature()) { @@ -1538,9 +1536,10 @@ private void updateProgressReportStatus(String progressHash, String progressStat private void updateMilestoneStatus(String milestonePrefix, int milestoneStatus, String progressHash ){ MilestoneDb.status.at(milestonePrefix).set(milestoneStatus); - MilestoneDb.progressReportHash.at(milestonePrefix).set(progressHash); +// MilestoneDb.progressReportHash.at(milestonePrefix).set(progressHash); - // TODO: better name here + // TODO: better name here -> is this even required + // fetch data from pogrss hash? // NOT SO REQUIRED ArrayDB progressTOm = this.progressReportToMilestone.at(progressHash); if(!ArrayDBUtils.containsInArrayDb(milestonePrefix,progressTOm)) { this.progressReportToMilestone.at(progressHash).add(milestonePrefix); @@ -1668,9 +1667,18 @@ public Map getBudgetAdjustmentDetails(String progressKey) { String progressReportKey = progressReportKeys.get(i); Map progressReportDetails = this.getProgressReportDetails(progressReportKey); String progressStatus = (String) progressReportDetails.get(STATUS); + String ipfsHash = (String) progressReportDetails.get(IPFS_HASH); + int milestoneCount = getMilestoneCount(ipfsHash); - if (progressStatus.equals(status)) { + + if (progressStatus.equals(status) && milestoneCount == 0) { + progressReportList.add(progressReportDetails); + progressReportList.add(getProgressReportVoteDetails(progressReportKey)); + } else if (progressStatus.equals(status) && milestoneCount > 0) { + + Map progressReportWithMilestone = getMilestoneReport(progressReportKey,ipfsHash); progressReportList.add(progressReportDetails); + progressReportList.add(progressReportWithMilestone); } } return Map.of(DATA, progressReportList, COUNT, count); @@ -1684,12 +1692,57 @@ public Map getBudgetAdjustmentDetails(String progressKey) { :rtype : dict ***/ @Override - @External(readonly = true) + @External(readonly = true)// include the votes and total voters here? public Map getProgressReportsByHash(String reportKey) { if (progressKeyExists(reportKey)) { - return getProgressReportDetails(reportKey); + return getProgressReportByHash_Proxy(reportKey); } return Map.of(); + } + + private Map getMilestoneReport(String reportKey, String ipfsHash){ + Map milestoneReport = new HashMap<>(); + ArrayDB mileSubmitted = milestoneSubmitted.at(progressReportPrefix(reportKey)); + for (int i = 0; i < mileSubmitted.size(); i++) { + int count = mileSubmitted.get(i); + milestoneReport.put("milestone_"+count,getMilestonesReport(ipfsHash,count)); + } + return milestoneReport; + } + + @External(readonly = true) + public Map getProgressReportByHash_Proxy(String reportKey){ + if (progressKeyExists(reportKey)) { + Map finalDetail = new HashMap<>(); + Map progressReportDetails = getProgressReportDetails(reportKey); + finalDetail.putAll(progressReportDetails); + String ipfsHash = (String) progressReportDetails.get(IPFS_HASH); + int milestoneCount = getMilestoneCount(ipfsHash); + + if (milestoneCount > 0){ + Map milestoneReport = getMilestoneReport(reportKey,ipfsHash); + + finalDetail.put("milestoneReport",milestoneReport); + } + else { + finalDetail.putAll(getVoteResultsFromProgressReportDB(reportKey)); + } + + return finalDetail; + } + return Map.of(); + } + +// +// +// @External(readonly = true) +// public Map getDummyData(String reportKey){ +// +// String prefix = progressReportPrefix(reportKey); +// Context.println("here"); +// return getDataFromProgressReportDB(prefix); +// +// } }