You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/03/16 15:40:19 UTC
[incubator-dlab] 02/09: Refactoring
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch DLAB-1571
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 101fa777e89c381a1c7ba50b5271cb11fc69697c
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Fri Mar 13 12:02:51 2020 +0200
Refactoring
---
.../billing/gcp/dao/impl/BigQueryBillingDAO.java | 48 ++++++++++++++--------
1 file changed, 30 insertions(+), 18 deletions(-)
diff --git a/services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/dao/impl/BigQueryBillingDAO.java b/services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/dao/impl/BigQueryBillingDAO.java
index cfb99de..ee917b5 100644
--- a/services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/dao/impl/BigQueryBillingDAO.java
+++ b/services/billing-gcp/src/main/java/com/epam/dlab/billing/gcp/dao/impl/BigQueryBillingDAO.java
@@ -25,6 +25,7 @@ import com.epam.dlab.billing.gcp.model.BillingHistory;
import com.epam.dlab.billing.gcp.model.GcpBillingData;
import com.epam.dlab.billing.gcp.repository.BillingHistoryRepository;
import com.epam.dlab.dto.billing.BillingData;
+import com.epam.dlab.exceptions.DlabException;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.FieldValueList;
import com.google.cloud.bigquery.QueryJobConfiguration;
@@ -104,31 +105,42 @@ public class BigQueryBillingDAO implements BillingDAO {
@Override
public List<BillingData> getBillingReport() {
- GroupOperation groupOperation = group("product", "currency", "usageType", "dlabId")
- .min("from").as("from")
- .max("to").as("to")
- .sum("cost").as("cost");
- Aggregation aggregation = newAggregation(groupOperation);
-
- return mongoTemplate.aggregate(aggregation, "billing", GcpBillingData.class).getMappedResults()
- .stream()
- .map(this::toBillingData)
- .collect(Collectors.toList());
+ try {
+ GroupOperation groupOperation = getGroupOperation();
+ Aggregation aggregation = newAggregation(groupOperation);
+
+ return mongoTemplate.aggregate(aggregation, "billing", GcpBillingData.class).getMappedResults()
+ .stream()
+ .map(this::toBillingData)
+ .collect(Collectors.toList());
+ } catch (Exception e) {
+ log.error("Cannot retrieve billing information ", e);
+ throw new DlabException("Cannot retrieve billing information", e);
+ }
}
@Override
public List<BillingData> getBillingReport(List<String> dlabIds) {
- GroupOperation groupOperation = group("product", "currency", "usageType", "dlabId")
+ try {
+ GroupOperation groupOperation = getGroupOperation();
+ MatchOperation matchOperation = Aggregation.match(Criteria.where("dlabId").in(dlabIds));
+ Aggregation aggregation = newAggregation(matchOperation, groupOperation);
+
+ return mongoTemplate.aggregate(aggregation, "billing", GcpBillingData.class).getMappedResults()
+ .stream()
+ .map(this::toBillingData)
+ .collect(Collectors.toList());
+ } catch (Exception e) {
+ log.error("Cannot retrieve billing information ", e);
+ throw new DlabException("Cannot retrieve billing information", e);
+ }
+ }
+
+ private GroupOperation getGroupOperation() {
+ return group("product", "currency", "usageType", "dlabId")
.min("from").as("from")
.max("to").as("to")
.sum("cost").as("cost");
- MatchOperation matchOperation = Aggregation.match(Criteria.where("dlabId").in(dlabIds));
- Aggregation aggregation = newAggregation(matchOperation, groupOperation);
-
- return mongoTemplate.aggregate(aggregation, "billing", GcpBillingData.class).getMappedResults()
- .stream()
- .map(this::toBillingData)
- .collect(Collectors.toList());
}
private Stream<? extends GcpBillingData> bigQueryResultSetStream(Table table) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org