Skip to content

Commit

Permalink
eudr dashboard cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
alexeh committed Mar 12, 2024
1 parent c396ca4 commit 37647f8
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ export class BigQueryAlertsQueryBuilder {
return this;
}

orderBy(field: string, order: 'ASC' | 'DESC'): this {
this.queryBuilder.orderBy(field, order);
return this;
}

getQueryBuilder(): SelectQueryBuilder<AlertsOutput> {
return this.queryBuilder;
}
Expand Down
32 changes: 8 additions & 24 deletions api/src/modules/eudr-alerts/alerts.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ export class AlertsRepository implements IEUDRAlertsRepository {
}

async getAlerts(dto?: GetEUDRAlertsDto): Promise<AlertsOutput[]> {
const queryBuilder: SelectQueryBuilder<AlertsOutput> =
this.dataSource.createQueryBuilder();
const queryBuilder: BigQueryAlertsQueryBuilder =
new BigQueryAlertsQueryBuilder(this.dataSource.createQueryBuilder(), dto);
// TODO: Make field selection dynamic
queryBuilder.from(this.baseDataset, 'alerts');
queryBuilder.select('alertdate', 'alertDate');
Expand All @@ -63,17 +63,17 @@ export class AlertsRepository implements IEUDRAlertsRepository {
queryBuilder.addSelect('alertcount', 'alertCount');
queryBuilder.addSelect('georegionid', 'geoRegionId');
queryBuilder.orderBy('alertdate', 'ASC');
return this.query(queryBuilder, dto);
return this.query(queryBuilder);
}

async getDates(dto: GetEUDRAlertsDto): Promise<EUDRAlertDates[]> {
const queryBuilder: SelectQueryBuilder<AlertsOutput> =
this.dataSource.createQueryBuilder();
const queryBuilder: BigQueryAlertsQueryBuilder =
new BigQueryAlertsQueryBuilder(this.dataSource.createQueryBuilder(), dto);
queryBuilder.from(this.baseDataset, 'alerts');
queryBuilder.select('alertdate', 'alertDate');
queryBuilder.orderBy('alertdate', 'ASC');
queryBuilder.groupBy('alertdate');
return this.query(queryBuilder, dto);
return this.query(queryBuilder);
}

async getAlertSummary(dto: any): Promise<EUDRAlertDatabaseResult[]> {
Expand Down Expand Up @@ -120,13 +120,10 @@ export class AlertsRepository implements IEUDRAlertsRepository {
return this.query(mainQueryBuilder);
}

private async query(
queryBuilder: SelectQueryBuilder<any> | BigQueryAlertsQueryBuilder,
dto?: GetEUDRAlertsDto,
): Promise<any> {
private async query(queryBuilder: BigQueryAlertsQueryBuilder): Promise<any> {
try {
const response: SimpleQueryRowsResponse = await this.bigQueryClient.query(
this.buildQuery(queryBuilder, dto),
queryBuilder.buildQuery(),
);
if (!response.length || 'error' in response) {
this.logger.error('Error in query', response);
Expand All @@ -140,17 +137,4 @@ export class AlertsRepository implements IEUDRAlertsRepository {
);
}
}

private buildQuery(
queryBuilder: SelectQueryBuilder<AlertsOutput> | BigQueryAlertsQueryBuilder,
dto?: GetEUDRAlertsDto,
): Query {
if (queryBuilder instanceof BigQueryAlertsQueryBuilder) {
return queryBuilder.buildQuery();
}
const alertsQueryBuilder: BigQueryAlertsQueryBuilder =
new BigQueryAlertsQueryBuilder(queryBuilder, dto);

return alertsQueryBuilder.buildQuery();
}
}
11 changes: 11 additions & 0 deletions api/src/modules/eudr-alerts/dashboard/dashboard-detail.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,22 @@ export class EUDRDashBoardDetail {
alerts: DashBoardDetailAlerts[];
}

class DashBoardDetailCountry {
@ApiProperty()
name: string;

@ApiProperty()
isoA3: string;
}

class DashBoardDetailSourcingInformation {
@ApiProperty()
materialName: string;
@ApiProperty()
hsCode: string;

@ApiProperty({ type: () => DashBoardDetailCountry })
country: DashBoardDetailCountry;
@ApiProperty()
totalArea: number;
@ApiProperty()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// supress typescript error
// eslint-disable-next-line @typescript-eslint/ban-types
import { Inject, Injectable, NotFoundException } from '@nestjs/common';
import { DataSource, EntityManager, SelectQueryBuilder } from 'typeorm';
import {
Expand All @@ -20,7 +18,6 @@ import {
EUDRDashBoardFields,
} from 'modules/eudr-alerts/dashboard/dashboard.types';
import { GetEUDRAlertDatesDto } from '../dto/get-alerts.dto';
import { AdminRegionsService } from '../../admin-regions/admin-regions.service';
import { AlertsOutput } from '../dto/alerts-output.dto';

import { GeoRegion } from 'modules/geo-regions/geo-region.entity';
Expand Down

0 comments on commit 37647f8

Please sign in to comment.