Skip to content

Commit 765e2d6

Browse files
authored
Merge pull request #142 from q-rapids/develop
Release v1.3
2 parents 3199828 + 35fc071 commit 765e2d6

33 files changed

+2119
-505
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ apply plugin: 'jacoco'
2626
apply plugin: 'org.asciidoctor.convert'
2727

2828
group = 'com.upc.gessi.qrapids'
29-
version = '1.2'
29+
version = '1.3'
3030
sourceCompatibility = 1.8
3131

3232
war {

docs/asciidoc/index.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
= Q-Rapids Dashboard API REST Documentation
2-
v1.2, {docdate}
2+
v1.3, {docdate}
33
:toc: left
44

55
:sectnums:

docs/asciidoc/index.html

Lines changed: 203 additions & 63 deletions
Large diffs are not rendered by default.

sonar-project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ sonar.projectKey=q-rapids_qrapids-dashboard
22

33
sonar.projectName=qrapids-dashboard
44

5-
sonar.projectVersion=1.2
5+
sonar.projectVersion=1.3
66

77
sonar.sources=src/main/java
88
sonar.tests=src/test/java

src/main/java/com/upc/gessi/qrapids/app/domain/adapters/Forecast.java

Lines changed: 161 additions & 24 deletions
Large diffs are not rendered by default.

src/main/java/com/upc/gessi/qrapids/app/domain/controllers/StrategicIndicatorsController.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ public List<DTODetailedStrategicIndicator> getSingleDetailedStrategicIndicatorsH
227227
return qmaDetailedStrategicIndicators.HistoricalData(strategicIndicatorId, from, to, projectExternalId);
228228
}
229229

230-
public List<DTOStrategicIndicatorEvaluation> getStrategicIndicatorsPrediction (String technique, String freq, String horizon, String projectExternalId) throws IOException, ElasticsearchStatusException {
231-
return qmaForecast.ForecastSI(technique, freq, horizon, projectExternalId);
230+
public List<DTOStrategicIndicatorEvaluation> getStrategicIndicatorsPrediction (List<DTOStrategicIndicatorEvaluation> si, String technique, String freq, String horizon, String projectExternalId) throws IOException, ElasticsearchStatusException {
231+
return qmaForecast.ForecastSI(si,technique, freq, horizon, projectExternalId);
232232
}
233233

234234
public List<DTODetailedStrategicIndicator> getDetailedStrategicIndicatorsPrediction (List<DTODetailedStrategicIndicator> currentEvaluation, String technique, String freq, String horizon, String projectExternalId) throws IOException, ElasticsearchStatusException {
@@ -242,12 +242,15 @@ public void trainForecastModelsAllProjects(String technique) throws IOException,
242242
}
243243
}
244244

245-
public void trainForecastModelsSingleProject(String project, String technique) throws IOException {
245+
public void trainForecastModelsSingleProject(String project, String technique) throws IOException, CategoriesException {
246246
List<DTOMetric> metrics = metricsController.getAllMetricsCurrentEvaluation(project);
247247
qmaForecast.trainMetricForecast(metrics, "7", project, technique);
248248

249249
List<DTOQualityFactor> factors = qualityFactorsController.getAllFactorsWithMetricsCurrentEvaluation(project);
250250
qmaForecast.trainFactorForecast(factors, "7", project, technique);
251+
252+
List<DTOStrategicIndicatorEvaluation> strategicIndicators = getAllStrategicIndicatorsCurrentEvaluation(project);
253+
qmaForecast.trainStrategicIndicatorForecast(strategicIndicators, "7", project, technique);
251254
}
252255

253256
public boolean assessStrategicIndicators(String projectExternalId, LocalDate dateFrom) throws IOException, CategoriesException, ProjectNotFoundException {

src/main/java/com/upc/gessi/qrapids/app/presentation/rest/dto/DTOStrategicIndicatorEvaluation.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public class DTOStrategicIndicatorEvaluation {
2727
private String categories_description;
2828
private boolean hasBN;
2929
private boolean hasFeedback;
30+
private Pair<Float, Float> confidence80;
31+
private Pair<Float, Float> confidence95;
3032
private String forecastingError;
3133
private int mismatchDays;
3234
private List<String> missingFactors;
@@ -58,6 +60,22 @@ public DTOStrategicIndicatorEvaluation(String id, String name, String descriptio
5860
setHasBN(hasBN);
5961
}
6062

63+
public DTOStrategicIndicatorEvaluation(String id, String name, String description, Pair<Float, String> value, Pair<Float, Float> confidence80, Pair<Float, Float> confidence95, String rationale, List<DTOSIAssessment> probabilities, LocalDate date, String datasource, Long dbId, String categories, boolean hasBN) {
64+
setId(id);
65+
setName(name);
66+
setDescription(description);
67+
setValue(value);
68+
setConfidence80(confidence80);
69+
setConfidence95(confidence95);
70+
setRationale(rationale);
71+
setProbabilities(probabilities);
72+
setDate(date);
73+
setDbId(dbId);
74+
setDatasource(datasource);
75+
setCategories_description(categories);
76+
setHasBN(hasBN);
77+
}
78+
6179
public DTOStrategicIndicatorEvaluation(String id, String name, String forecastingError) {
6280
this.id = id;
6381
this.name = name;
@@ -102,7 +120,6 @@ public void setDescription(String description) {
102120
this.description = description;
103121
}
104122

105-
106123
public Pair<Float, String> getValue() {
107124
return value;
108125
}
@@ -208,4 +225,20 @@ public List<String> getMissingFactors() {
208225
public void setMissingFactors(List<String> missingFactors) {
209226
this.missingFactors = missingFactors;
210227
}
228+
229+
public void setConfidence80(Pair<Float, Float> confidence80) {
230+
this.confidence80 = confidence80;
231+
}
232+
233+
public Pair<Float, Float> getConfidence80() {
234+
return confidence80;
235+
}
236+
237+
public void setConfidence95(Pair<Float, Float> confidence95) {
238+
this.confidence95 = confidence95;
239+
}
240+
241+
public Pair<Float, Float> getConfidence95() {
242+
return confidence95;
243+
}
211244
}

src/main/java/com/upc/gessi/qrapids/app/presentation/rest/services/Metrics.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,10 @@ public List<DTOMetric> getHistoricalDataForMetric(@RequestParam(value = "prj") S
109109

110110
@RequestMapping("/api/metrics/prediction")
111111
@ResponseStatus(HttpStatus.OK)
112-
public List<DTOMetric> getMetricsPredictionData(@RequestParam(value = "prj") String prj, @RequestParam("technique") String techinique, @RequestParam("horizon") String horizon) throws IOException {
112+
public List<DTOMetric> getMetricsPredictionData(@RequestParam(value = "prj") String prj, @RequestParam("technique") String technique, @RequestParam("horizon") String horizon) throws IOException {
113113
try {
114114
List<DTOMetric> currentEvaluation = metricsController.getAllMetricsCurrentEvaluation(prj);
115-
return metricsController.getMetricsPrediction(currentEvaluation, prj, techinique, "7", horizon);
115+
return metricsController.getMetricsPrediction(currentEvaluation, prj, technique, "7", horizon);
116116
} catch (ElasticsearchStatusException e) {
117117
logger.error(e.getMessage(), e);
118118
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, Messages.PROJECT_NOT_FOUND);
@@ -122,4 +122,16 @@ public List<DTOMetric> getMetricsPredictionData(@RequestParam(value = "prj") Str
122122
}
123123
}
124124

125+
@GetMapping("/api/metrics/currentDate")
126+
@ResponseStatus(HttpStatus.OK)
127+
public LocalDate getcurrentDate(@RequestParam(value = "prj") String prj) {
128+
try {
129+
List<DTOMetric> metrics = metricsController.getAllMetricsCurrentEvaluation(prj);
130+
return metrics.get(0).getDate();
131+
} catch (IOException e) {
132+
logger.error(e.getMessage(), e);
133+
}
134+
// if the response is null
135+
return null;
136+
}
125137
}

src/main/java/com/upc/gessi/qrapids/app/presentation/rest/services/QualityFactors.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import com.upc.gessi.qrapids.app.domain.controllers.MetricsController;
44
import com.upc.gessi.qrapids.app.domain.controllers.QualityFactorsController;
55
import com.upc.gessi.qrapids.app.domain.models.QFCategory;
6-
import com.upc.gessi.qrapids.app.presentation.rest.dto.DTOCategoryThreshold;
7-
import com.upc.gessi.qrapids.app.presentation.rest.dto.DTOFactor;
8-
import com.upc.gessi.qrapids.app.presentation.rest.dto.DTOMetric;
9-
import com.upc.gessi.qrapids.app.presentation.rest.dto.DTOQualityFactor;
6+
import com.upc.gessi.qrapids.app.presentation.rest.dto.*;
107
import com.upc.gessi.qrapids.app.domain.exceptions.CategoriesException;
118
import com.upc.gessi.qrapids.app.presentation.rest.services.helpers.Messages;
129
import org.elasticsearch.ElasticsearchStatusException;
@@ -189,4 +186,17 @@ public List<DTOMetric> getMetricsPredictionData(@RequestParam(value = "prj") Str
189186
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, Messages.INTERNAL_SERVER_ERROR + e.getMessage());
190187
}
191188
}
189+
190+
@GetMapping("/api/qualityFactors/currentDate")
191+
@ResponseStatus(HttpStatus.OK)
192+
public LocalDate getcurrentDate(@RequestParam(value = "prj") String prj) {
193+
try {
194+
List<DTOFactor> qfs = qualityFactorsController.getAllFactorsEvaluation(prj);
195+
return qfs.get(0).getDate();
196+
} catch (IOException e) {
197+
logger.error(e.getMessage(), e);
198+
}
199+
// if the response is null
200+
return null;
201+
}
192202
}

src/main/java/com/upc/gessi/qrapids/app/presentation/rest/services/StrategicIndicators.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,12 @@ List<DTOQualityFactor> getQualityFactorsHistoricalData(@RequestParam(value = "pr
186186
@ResponseStatus(HttpStatus.OK)
187187
public List<DTOStrategicIndicatorEvaluation> getStrategicIndicatorsPrediction(@RequestParam(value = "prj", required=false) String prj, @RequestParam("technique") String technique, @RequestParam("horizon") String horizon) {
188188
try {
189-
return strategicIndicatorsController.getStrategicIndicatorsPrediction(technique, "7", horizon, prj);
189+
List<DTOStrategicIndicatorEvaluation> currentEvaluation = strategicIndicatorsController.getAllStrategicIndicatorsCurrentEvaluation(prj);
190+
return strategicIndicatorsController.getStrategicIndicatorsPrediction(currentEvaluation, technique, "7", horizon, prj);
190191
} catch (ElasticsearchStatusException e) {
191192
logger.error(e.getMessage(), e);
192193
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, Messages.PROJECT_NOT_FOUND);
193-
} catch (IOException e) {
194+
} catch (IOException | CategoriesException e) {
194195
logger.error(e.getMessage(), e);
195196
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, Messages.INTERNAL_SERVER_ERROR + e.getMessage());
196197
}
@@ -392,7 +393,8 @@ public void newSICategories (@RequestBody List<Map<String, String>> categories)
392393
private enum TrainType {
393394
NONE, ONE, ALL
394395
}
395-
//TODO: assessSI
396+
397+
//TODO: assessSI
396398
@RequestMapping("/api/assessStrategicIndicators")
397399
@ResponseStatus(HttpStatus.OK)
398400
public void assesStrategicIndicatorsLegacy(@RequestParam(value = "prj", required=false) String prj,
@@ -492,4 +494,17 @@ public List<DTORelationsSI> getQualityModel(@RequestParam("prj") String prj, @Re
492494
public List<String> getForecastTechniques() {
493495
return strategicIndicatorsController.getForecastTechniques();
494496
}
497+
498+
@GetMapping("/api/strategicIndicators/currentDate")
499+
@ResponseStatus(HttpStatus.OK)
500+
public LocalDate getcurrentDate(@RequestParam(value = "prj") String prj) {
501+
try {
502+
List<DTOStrategicIndicatorEvaluation> si = strategicIndicatorsController.getAllStrategicIndicatorsCurrentEvaluation(prj);
503+
return si.get(0).getDate();
504+
} catch (IOException | CategoriesException e) {
505+
logger.error(e.getMessage(), e);
506+
}
507+
// if the response is null
508+
return null;
509+
}
495510
}

0 commit comments

Comments
 (0)