Skip to content

Commit

Permalink
Fix: count endpoint in PublishedDataController is fixed (#912)
Browse files Browse the repository at this point in the history
  • Loading branch information
janosbabik authored Nov 24, 2023
1 parent 7622dd2 commit 2abc52a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 23 deletions.
38 changes: 18 additions & 20 deletions src/published-data/published-data.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import {
} from "./interfaces/published-data.interface";
import { AllowAny } from "src/auth/decorators/allow-any.decorator";
import { RegisteredInterceptor } from "./interceptors/registered.interceptor";
import { FilterQuery } from "mongoose";
import { FilterQuery, QueryOptions } from "mongoose";
import { DatasetsService } from "src/datasets/datasets.service";
import { ProposalsService } from "src/proposals/proposals.service";
import { AttachmentsService } from "src/attachments/attachments.service";
Expand Down Expand Up @@ -133,26 +133,24 @@ export class PublishedDataController {
async count(
@Query() filter?: { filter: string; fields: string },
): Promise<ICount> {
const jsonFilters: IPublishedDataFilters =
filter && filter.filter ? JSON.parse(filter.filter) : {};
const jsonFields: FilterQuery<PublishedDataDocument> =
filter && filter.fields ? JSON.parse(filter.fields) : {};
const whereFilters: FilterQuery<PublishedDataDocument> =
jsonFilters && jsonFilters.where
? {
...jsonFilters.where,
...jsonFields,
}
: {
...jsonFields,
};
const publishedDataFilters: IPublishedDataFilters = {
where: whereFilters,
const jsonFilters: IPublishedDataFilters = filter?.filter
? JSON.parse(filter.filter)
: {};
const jsonFields: FilterQuery<PublishedDataDocument> = filter?.fields
? JSON.parse(filter.fields)
: {};

const filters: FilterQuery<PublishedDataDocument> = {
...jsonFilters.where,
...jsonFields,
};
if (jsonFilters && jsonFilters.limits) {
publishedDataFilters.limits = jsonFilters.limits;
}
return this.publishedDataService.count(publishedDataFilters);

const options: QueryOptions = {
limit: jsonFilters?.limits?.limit,
skip: jsonFilters?.limits?.skip,
};

return this.publishedDataService.countDocuments(filters, options);
}

// GET /publisheddata/formpopulate
Expand Down
11 changes: 8 additions & 3 deletions src/published-data/published-data.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Inject, Injectable, Scope } from "@nestjs/common";
import { REQUEST } from "@nestjs/core";
import { Request } from "express";
import { InjectModel } from "@nestjs/mongoose";
import { FilterQuery, Model } from "mongoose";
import { FilterQuery, Model, QueryOptions } from "mongoose";
import {
parseLimitFilters,
addCreatedByFields,
Expand Down Expand Up @@ -66,8 +66,13 @@ export class PublishedDataService {
.exec();
}

async count(filter: FilterQuery<PublishedDataDocument>): Promise<ICount> {
const count = await this.publishedDataModel.count(filter).exec();
async countDocuments(
filter: FilterQuery<PublishedDataDocument>,
options?: QueryOptions,
): Promise<ICount> {
const count = await this.publishedDataModel
.countDocuments(filter, options)
.exec();
return { count };
}

Expand Down

0 comments on commit 2abc52a

Please sign in to comment.