Skip to content

Commit be3eb12

Browse files
committed
feat: clean up memory with locked assets
1 parent 2d7377a commit be3eb12

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

server/src/queries/memory.repository.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ select
1515
inner join "memories_assets_assets" on "assets"."id" = "memories_assets_assets"."assetsId"
1616
where
1717
"memories_assets_assets"."memoriesId" = "memories"."id"
18+
and "assets"."visibility" = 'timeline'
1819
and "assets"."deletedAt" is null
1920
order by
2021
"assets"."fileCreatedAt" asc
@@ -43,6 +44,7 @@ select
4344
inner join "memories_assets_assets" on "assets"."id" = "memories_assets_assets"."assetsId"
4445
where
4546
"memories_assets_assets"."memoriesId" = "memories"."id"
47+
and "assets"."visibility" = 'timeline'
4648
and "assets"."deletedAt" is null
4749
order by
4850
"assets"."fileCreatedAt" asc
@@ -79,6 +81,7 @@ select
7981
inner join "memories_assets_assets" on "assets"."id" = "memories_assets_assets"."assetsId"
8082
where
8183
"memories_assets_assets"."memoriesId" = "memories"."id"
84+
and "assets"."visibility" = 'timeline'
8285
and "assets"."deletedAt" is null
8386
order by
8487
"assets"."fileCreatedAt" asc
@@ -111,6 +114,7 @@ select
111114
inner join "memories_assets_assets" on "assets"."id" = "memories_assets_assets"."assetsId"
112115
where
113116
"memories_assets_assets"."memoriesId" = "memories"."id"
117+
and "assets"."visibility" = 'timeline'
114118
and "assets"."deletedAt" is null
115119
order by
116120
"assets"."fileCreatedAt" asc

server/src/repositories/memory.repository.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
import { Injectable } from '@nestjs/common';
2-
import { Insertable, Kysely, Updateable } from 'kysely';
2+
import { Insertable, Kysely, sql, Updateable } from 'kysely';
33
import { jsonArrayFrom } from 'kysely/helpers/postgres';
44
import { DateTime } from 'luxon';
55
import { InjectKysely } from 'nestjs-kysely';
66
import { DB, Memories } from 'src/db';
77
import { Chunked, ChunkedSet, DummyValue, GenerateSql } from 'src/decorators';
88
import { MemorySearchDto } from 'src/dtos/memory.dto';
9+
import { AssetVisibility } from 'src/enum';
910
import { IBulkAsset } from 'src/types';
1011

1112
@Injectable()
1213
export class MemoryRepository implements IBulkAsset {
1314
constructor(@InjectKysely() private db: Kysely<DB>) {}
1415

15-
cleanup() {
16+
async cleanup() {
17+
await this.db
18+
.deleteFrom('memories_assets_assets')
19+
.using('assets')
20+
.whereRef('memories_assets_assets.assetsId', '=', 'assets.id')
21+
.where('assets.visibility', '!=', AssetVisibility.TIMELINE)
22+
.execute();
23+
1624
return this.db
1725
.deleteFrom('memories')
1826
.where('createdAt', '<', DateTime.now().minus({ days: 30 }).toJSDate())
@@ -36,6 +44,7 @@ export class MemoryRepository implements IBulkAsset {
3644
.innerJoin('memories_assets_assets', 'assets.id', 'memories_assets_assets.assetsId')
3745
.whereRef('memories_assets_assets.memoriesId', '=', 'memories.id')
3846
.orderBy('assets.fileCreatedAt', 'asc')
47+
.where('assets.visibility', '=', sql.lit(AssetVisibility.TIMELINE))
3948
.where('assets.deletedAt', 'is', null),
4049
).as('assets'),
4150
)
@@ -138,6 +147,7 @@ export class MemoryRepository implements IBulkAsset {
138147
.innerJoin('memories_assets_assets', 'assets.id', 'memories_assets_assets.assetsId')
139148
.whereRef('memories_assets_assets.memoriesId', '=', 'memories.id')
140149
.orderBy('assets.fileCreatedAt', 'asc')
150+
.where('assets.visibility', '=', sql.lit(AssetVisibility.TIMELINE))
141151
.where('assets.deletedAt', 'is', null),
142152
).as('assets'),
143153
)

0 commit comments

Comments
 (0)