|
1 | 1 | import { QueryParams, EditableEntity } from '@devmx/shared-api-interfaces';
|
| 2 | +import { Query, RootFilterQuery, SortOrder } from 'mongoose'; |
2 | 3 | import { EventsService } from '@devmx/event-domain/server';
|
3 | 4 | import { getModelToken } from '@nestjs/mongoose';
|
4 | 5 | import { EventCollection } from '../schemas';
|
5 |
| -import { Query } from 'mongoose'; |
6 | 6 | import {
|
| 7 | + objectId, |
7 | 8 | MongoService,
|
8 | 9 | createServiceProvider,
|
9 |
| - objectId, |
10 | 10 | } from '@devmx/shared-data-source';
|
11 | 11 |
|
12 | 12 | export class EventsMongoServiceImpl
|
@@ -38,15 +38,38 @@ export class EventsMongoServiceImpl
|
38 | 38 | }
|
39 | 39 |
|
40 | 40 | async findFrom(date: Date, params: QueryParams<EventCollection>) {
|
41 |
| - const { page = 0, size = 10, filter, sort } = params; |
| 41 | + const { page = 0, size = 10 } = params; |
42 | 42 |
|
43 | 43 | const skip = page * size;
|
44 |
| - const where = this.applyFilter(filter ?? {}); |
45 |
| - const order = this.applySort(sort ?? {}); |
| 44 | + const filter = this.applyFilter(params.filter ?? {}); |
| 45 | + const sort = this.applySort(params.sort ?? {}); |
| 46 | + |
| 47 | + const where = { ...filter, date: { $gte: date } }; |
| 48 | + |
| 49 | + return this.findByWhere(where, sort, skip, size); |
| 50 | + } |
46 | 51 |
|
| 52 | + async findUntil(date: Date, params: QueryParams<EventCollection>) { |
| 53 | + const { page = 0, size = 10 } = params; |
| 54 | + |
| 55 | + const skip = page * size; |
| 56 | + const filter = this.applyFilter(params.filter ?? {}); |
| 57 | + const sort = this.applySort(params.sort ?? {}); |
| 58 | + |
| 59 | + const where = { ...filter, date: { $lte: date } }; |
| 60 | + |
| 61 | + return this.findByWhere(where, sort, skip, size); |
| 62 | + } |
| 63 | + |
| 64 | + async findByWhere( |
| 65 | + where: RootFilterQuery<EventCollection>, |
| 66 | + sort: Record<string, SortOrder>, |
| 67 | + skip: number, |
| 68 | + size: number |
| 69 | + ) { |
47 | 70 | const query = this.entityModel
|
48 |
| - .find({ ...where, date: { $gte: date } }) |
49 |
| - .sort(order) |
| 71 | + .find(where) |
| 72 | + .sort(sort) |
50 | 73 | .skip(skip)
|
51 | 74 | .limit(size);
|
52 | 75 |
|
|
0 commit comments