Skip to content

Commit

Permalink
Merge branch 'master' into dependabot/npm_and_yarn/nestjs/config-2.3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
nitrosx authored Jun 13, 2023
2 parents 28192e3 + f838ffd commit 7fb2f58
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 8 deletions.
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 24 additions & 1 deletion src/published-data/published-data.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,33 @@ export class PublishedDataController {
description: "Database filters to apply when retrieve all published data",
required: false,
})
async findAll(@Query("filter") filter?: string): Promise<PublishedData[]> {
@ApiQuery({
name: "limits",
description: "Database limits to apply when retrieve all published data",
required: false,
})
async findAll(
@Query("filter") filter?: string,
@Query("limits") limits?: string,
@Query("fields") fields?: string,
): Promise<PublishedData[]> {
const publishedDataFilters: IPublishedDataFilters = JSON.parse(
filter ?? "{}",
);
const publishedDataLimits: {
skip: number;
limit: number;
order: string;
} = JSON.parse(limits ?? "{}");
const publishedDataFields = JSON.parse(fields ?? "{}");

if (!publishedDataFilters.limits) {
publishedDataFilters.limits = publishedDataLimits;
}
if (!publishedDataFilters.fields) {
publishedDataFilters.fields = publishedDataFields;
}

return this.publishedDataService.findAll(publishedDataFilters);
}

Expand Down
14 changes: 13 additions & 1 deletion src/published-data/published-data.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
parseLimitFilters,
addCreatedByFields,
addUpdatedByField,
createFullqueryFilter,
} from "src/common/utils";
import { CreatePublishedDataDto } from "./dto/create-published-data.dto";
import { UpdatePublishedDataDto } from "./dto/update-published-data.dto";
Expand Down Expand Up @@ -44,10 +45,21 @@ export class PublishedDataService {

async findAll(filter: IPublishedDataFilters): Promise<PublishedData[]> {
const whereFilter: FilterQuery<PublishedDataDocument> = filter.where ?? {};
const fields = filter.fields ?? {};
const filterQuery: FilterQuery<PublishedDataDocument> =
createFullqueryFilter<PublishedDataDocument>(
this.publishedDataModel,
"doi",
fields,
);
const whereClause: FilterQuery<PublishedDataDocument> = {
...filterQuery,
...whereFilter,
};
const { limit, skip, sort } = parseLimitFilters(filter.limits);

return this.publishedDataModel
.find(whereFilter)
.find(whereClause)
.limit(limit)
.skip(skip)
.sort(sort)
Expand Down

0 comments on commit 7fb2f58

Please sign in to comment.