Skip to content

Commit 0023b83

Browse files
committed
Extract engagement filters
1 parent 18f0af0 commit 0023b83

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

src/components/engagement/engagement.repository.ts

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import {
5050
CreateInternshipEngagement,
5151
CreateLanguageEngagement,
5252
Engagement,
53+
EngagementFilters,
5354
EngagementListInput,
5455
EngagementStatus,
5556
IEngagement,
@@ -368,26 +369,7 @@ export class EngagementRepository extends CommonRepository {
368369
),
369370
)
370371
.match(requestingUser(session))
371-
.apply(
372-
filter.builder(input.filter ?? {}, {
373-
type: filter.skip,
374-
projectId: filter.skip,
375-
partnerId: filter.pathExists((id) => [
376-
node('node'),
377-
relation('in', '', 'engagement'),
378-
node('', 'Project'),
379-
relation('out', '', 'partnership', ACTIVE),
380-
node('', 'Partnership'),
381-
relation('out', '', 'partner'),
382-
node('', 'Partner', { id }),
383-
]),
384-
languageId: filter.pathExists((id) => [
385-
node('node'),
386-
relation('out', '', 'language'),
387-
node('', 'Language', { id }),
388-
]),
389-
}),
390-
)
372+
.apply(engagementFilters(input.filter))
391373
.apply(
392374
this.privileges.for(session, IEngagement).filterToReadable({
393375
wrapContext: oncePerProject,
@@ -529,6 +511,25 @@ export class EngagementRepository extends CommonRepository {
529511
}
530512
}
531513

514+
export const engagementFilters = filter.define(() => EngagementFilters, {
515+
type: filter.skip,
516+
projectId: filter.skip,
517+
partnerId: filter.pathExists((id) => [
518+
node('node'),
519+
relation('in', '', 'engagement'),
520+
node('', 'Project'),
521+
relation('out', '', 'partnership', ACTIVE),
522+
node('', 'Partnership'),
523+
relation('out', '', 'partner'),
524+
node('', 'Partner', { id }),
525+
]),
526+
languageId: filter.pathExists((id) => [
527+
node('node'),
528+
relation('out', '', 'language'),
529+
node('', 'Language', { id }),
530+
]),
531+
});
532+
532533
export const engagementSorters = defineSorters(IEngagement, {
533534
nameProjectFirst: (query) =>
534535
query

0 commit comments

Comments
 (0)