Skip to content

Commit e95e09f

Browse files
committed
Add Partnership.partner sorting & filtering
1 parent f1f9137 commit e95e09f

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/components/partnership/dto/list-partnership.dto.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@ import {
66
SecuredList,
77
SortablePaginationInput,
88
} from '~/common';
9+
import { PartnerFilters } from '../../partner/dto';
910
import { Partnership } from './partnership.dto';
1011

1112
@InputType()
1213
export abstract class PartnershipFilters {
1314
readonly projectId?: ID;
15+
16+
@FilterField(() => PartnerFilters)
17+
readonly partner?: PartnerFilters & {};
1418
}
1519

1620
@InputType()

src/components/partnership/partnership.repository.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
} from '~/core/database/query';
3636
import { FileService } from '../file';
3737
import { FileId } from '../file/dto';
38+
import { partnerFilters, partnerSorters } from '../partner/partner.repository';
3839
import {
3940
CreatePartnership,
4041
Partnership,
@@ -405,6 +406,26 @@ export class PartnershipRepository extends DtoRepository<
405406

406407
export const partnershipFilters = filter.define(() => PartnershipFilters, {
407408
projectId: filter.skip,
409+
partner: filter.sub(() => partnerFilters)((sub) =>
410+
sub
411+
.with('node as partnership')
412+
.match([
413+
node('partnership'),
414+
relation('out', '', 'partner'),
415+
node('node', 'Partner'),
416+
]),
417+
),
408418
});
409419

410-
export const partnershipSorters = defineSorters(Partnership, {});
420+
export const partnershipSorters = defineSorters(Partnership, {
421+
// eslint-disable-next-line @typescript-eslint/naming-convention
422+
'partner.*': (query, input) =>
423+
query
424+
.with('node as partnership')
425+
.match([
426+
node('partnership'),
427+
relation('out', '', 'partner'),
428+
node('node', 'Partner'),
429+
])
430+
.apply(sortWith(partnerSorters, input)),
431+
});

0 commit comments

Comments
 (0)