Skip to content

Commit 995ab87

Browse files
committed
Updated pinned to use currentUser & new shortcut
1 parent f34a72b commit 995ab87

File tree

7 files changed

+19
-7
lines changed

7 files changed

+19
-7
lines changed

src/components/language/language.repository.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
merge,
3939
oncePerProject,
4040
paginate,
41+
pinned,
4142
propSorter,
4243
rankSens,
4344
requestingUser,
@@ -225,7 +226,7 @@ export class LanguageRepository extends DtoRepository<
225226
merge('props', 'changedProps', {
226227
__typename: '"Language"',
227228
ethnologue: 'ethProps',
228-
pinned: 'exists((:User { id: $requestingUser })-[:pinned]->(node))',
229+
pinned,
229230
presetInventory: 'presetInventory',
230231
firstScriptureEngagement: 'firstScriptureEngagement { .id }',
231232
scope: 'scopedRoles',

src/components/partner/partner.repository.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
merge,
2828
oncePerProject,
2929
paginate,
30+
pinned,
3031
rankSens,
3132
requestingUser,
3233
sortWith,
@@ -291,7 +292,7 @@ export class PartnerRepository extends DtoRepository<
291292
languagesOfConsulting: 'languagesOfConsulting',
292293
departmentIdBlock: 'departmentIdBlock',
293294
scope: 'scopedRoles',
294-
pinned: 'exists((:User { id: $requestingUser })-[:pinned]->(node))',
295+
pinned,
295296
}).as('dto'),
296297
);
297298
}

src/components/project/project.repository.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {
2626
merge,
2727
paginate,
2828
path,
29+
pinned,
2930
requestingUser,
3031
type SortCol,
3132
sortWith,
@@ -134,7 +135,7 @@ export class ProjectRepository extends CommonRepository {
134135
.return<{ dto: UnsecuredDto<Project> }>(
135136
merge('props', 'changedProps', {
136137
type: 'node.type',
137-
pinned: 'exists((:User { id: $requestingUser })-[:pinned]->(node))',
138+
pinned,
138139
isMember: '"member:true" in props.scope',
139140
rootDirectory: 'rootDirectory { .id }',
140141
primaryPartnership: 'primaryPartnership { .id }',

src/components/user/user.repository.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
multiPropsAsSortString,
2626
paginate,
2727
path,
28+
pinned,
2829
property,
2930
requestingUser,
3031
type SortCol,
@@ -145,7 +146,7 @@ export class UserRepository extends DtoRepository<typeof User, [Session | ID]>(
145146
merge({ email: null }, 'props', {
146147
__typename: '"User"',
147148
roles: 'roles',
148-
pinned: 'exists((requestingUser)-[:pinned]->(node))',
149+
pinned,
149150
}).as('dto'),
150151
);
151152
}

src/core/database/query/cypher-functions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export const count = fn1('count');
4646
*/
4747
export const coalesce = fn('coalesce');
4848

49+
export const exists = fn1('exists');
50+
4951
/**
5052
* Merges maps together.
5153
* Note: If one expression is given, it is assumed to be a list.

src/core/database/query/filters.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { variable } from '../query-augmentation/condition-variables';
2525
import { intersects } from './comparators';
2626
import { collect } from './cypher-functions';
2727
import { escapeLuceneSyntax, type FullTextIndex } from './full-text';
28-
import { ACTIVE } from './matching';
28+
import { ACTIVE, currentUser } from './matching';
2929
import { path as pathPattern } from './where-path';
3030

3131
export type Builder<T, K extends keyof T = keyof T> = (
@@ -175,7 +175,7 @@ export const pathExistsWhenTrue: typeof pathExists = (pattern) => (args) =>
175175
args.value ? pathExists(pattern)(args) : null;
176176

177177
export const isPinned = pathExists<{ pinned?: boolean }, 'pinned'>([
178-
node('requestingUser'),
178+
currentUser,
179179
relation('out', '', 'pinned'),
180180
node('node'),
181181
]);

src/core/database/query/matching.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
type Session,
1818
} from '~/common';
1919
import { variable } from '../query-augmentation/condition-variables';
20-
import { apoc, collect, listConcat, merge } from './cypher-functions';
20+
import { apoc, collect, exists, listConcat, merge } from './cypher-functions';
2121

2222
const currentUserFlag = Symbol();
2323
const makeCurrentUser = (name: string) =>
@@ -146,3 +146,9 @@ export const property = (
146146
}),
147147
],
148148
];
149+
150+
export const pinned = exists([
151+
currentUser,
152+
relation('out', '', 'pinned'),
153+
node('node'),
154+
]);

0 commit comments

Comments
 (0)