Skip to content

Commit cc712d8

Browse files
authored
[EdgeDB] Pin Queries (#3237)
1 parent aaef69c commit cc712d8

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { Injectable } from '@nestjs/common';
2+
import { ID, PublicOf } from '~/common';
3+
import { CommonRepository, e } from '~/core/edgedb';
4+
import { PinRepository } from './pin.repository';
5+
6+
@Injectable()
7+
export class PinEdgeDBRepository
8+
extends CommonRepository
9+
implements PublicOf<PinRepository>
10+
{
11+
async isPinned(id: ID) {
12+
const resource = e.cast(e.Mixin.Pinnable, e.uuid(id));
13+
const query = e.op(resource, 'in', e.global.currentUser.pins);
14+
return await this.db.run(query);
15+
}
16+
17+
async add(id: ID) {
18+
const resource = e.cast(e.Mixin.Pinnable, e.uuid(id));
19+
const query = e.update(e.global.currentUser, () => ({
20+
set: { pins: { '+=': resource } },
21+
}));
22+
await this.db.run(query);
23+
}
24+
25+
async remove(id: ID) {
26+
const resource = e.cast(e.Mixin.Pinnable, e.uuid(id));
27+
const query = e.update(e.global.currentUser, () => ({
28+
set: { pins: { '-=': resource } },
29+
}));
30+
await this.db.run(query);
31+
}
32+
}

src/components/pin/pin.module.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import { Module } from '@nestjs/common';
2+
import { splitDb } from '~/core';
3+
import { PinEdgeDBRepository } from './pin.edgedb.repository';
24
import { PinRepository } from './pin.repository';
35
import { PinResolver } from './pin.resolver';
46
import { PinService } from './pin.service';
57

68
@Module({
7-
providers: [PinResolver, PinService, PinRepository],
9+
providers: [
10+
PinResolver,
11+
PinService,
12+
splitDb(PinRepository, PinEdgeDBRepository),
13+
],
814
exports: [PinService],
915
})
1016
export class PinModule {}

0 commit comments

Comments
 (0)