Skip to content

Commit e8fdac0

Browse files
committed
Merge branch 'dev' into main
2 parents 51cc595 + b52bf36 commit e8fdac0

File tree

6 files changed

+80
-65
lines changed

6 files changed

+80
-65
lines changed

apps/app-server/src/trpc/api/pages/snapshots/delete.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export async function delete_({
4646

4747
const pageSnapshotInfos: PageSnapshotInfo[] =
4848
await ctx.dataAbstraction.hget(
49-
'page-snaphots',
49+
'page-snapshots',
5050
input.pageId,
5151
'infos',
5252
);
@@ -65,7 +65,7 @@ export async function delete_({
6565
// Update page snapshot infos
6666

6767
await ctx.dataAbstraction.hmset(
68-
'page-snaphots',
68+
'page-snapshots',
6969
input.pageId,
7070
{ infos: pageSnapshotInfos },
7171
{ dtrx },

apps/client/src/code/realtime/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ export const RealtimeClient = once(
391391

392392
this._resubscribe('page', pageId, 'permanent-deletion-date');
393393

394-
this._resubscribe('page-snaphots', pageId, 'infos');
394+
this._resubscribe('page-snapshots', pageId, 'infos');
395395
}
396396
}
397397
}

apps/client/src/layouts/PagesLayout/RightSidebar/PageProperties/VersionHistory.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ const page = inject<Ref<Page>>('page')!;
9797
9898
const snapshotInfos = computed(
9999
(): PageSnapshotInfo[] =>
100-
page.value.realtimeCtx.hget('page-snaphots', page.value.id, 'infos') ?? [],
100+
page.value.realtimeCtx.hget('page-snapshots', page.value.id, 'infos') ?? [],
101101
);
102102
103103
async function restoreVersion(snapshotId: string) {

apps/scheduler/src/index.ts

Lines changed: 73 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -14,74 +14,89 @@ import { initKnex } from './data/knex';
1414
initKnex();
1515

1616
async function cleanDeletedObjects() {
17-
const [
18-
permanentlyDeletedPages,
17+
try {
18+
const [
19+
permanentlyDeletedPages,
1920

20-
groupJoinInvitations,
21-
groupJoinRequests,
22-
groupMembers,
21+
groupJoinInvitations,
22+
groupJoinRequests,
23+
groupMembers,
2324

24-
permanentlyDeletedGroups,
25-
] = await Promise.all([
26-
PageModel.query()
27-
.join('groups', 'groups.id', 'pages.group_id')
28-
.where('pages.permanent_deletion_date', '>', new Date())
29-
.orWhere('groups.permanent_deletion_date', '>', new Date())
30-
.select('pages.id'),
25+
permanentlyDeletedGroups,
26+
] = await Promise.all([
27+
PageModel.query()
28+
.join('groups', 'groups.id', 'pages.group_id')
29+
.where('pages.permanent_deletion_date', '<', new Date())
30+
.orWhere('groups.permanent_deletion_date', '<', new Date())
31+
.select('pages.id'),
3132

32-
GroupJoinInvitationModel.query()
33-
.join('groups', 'groups.id', 'group_join_invitations.group_id')
34-
.where('groups.permanent_deletion_date', '>', new Date()),
35-
GroupJoinRequestModel.query()
36-
.join('groups', 'groups.id', 'group_join_requests.group_id')
37-
.where('groups.permanent_deletion_date', '>', new Date()),
38-
GroupMemberModel.query()
39-
.join('groups', 'groups.id', 'group_members.group_id')
40-
.where('groups.permanent_deletion_date', '>', new Date()),
33+
GroupJoinInvitationModel.query()
34+
.join('groups', 'groups.id', 'group_join_invitations.group_id')
35+
.where('groups.permanent_deletion_date', '<', new Date()),
36+
GroupJoinRequestModel.query()
37+
.join('groups', 'groups.id', 'group_join_requests.group_id')
38+
.where('groups.permanent_deletion_date', '<', new Date()),
39+
GroupMemberModel.query()
40+
.join('groups', 'groups.id', 'group_members.group_id')
41+
.where('groups.permanent_deletion_date', '<', new Date()),
4142

42-
GroupModel.query()
43-
.where('permanent_deletion_date', '>', new Date())
44-
.select('id'),
45-
]);
43+
GroupModel.query()
44+
.where('permanent_deletion_date', '<', new Date())
45+
.select('id'),
46+
]);
4647

47-
await dataAbstraction().transaction(async (dtrx) => {
48-
await Promise.all([
49-
...permanentlyDeletedPages.map((page) =>
50-
dataAbstraction().delete('page-snaphots', page.id, { dtrx }),
51-
),
52-
...permanentlyDeletedPages.map((page) =>
53-
dataAbstraction().delete('page', page.id, { dtrx }),
54-
),
48+
await dataAbstraction().transaction(async (dtrx) => {
49+
await Promise.all([
50+
...permanentlyDeletedPages.flatMap((page) => [
51+
dataAbstraction().delete('page-backlinks', page.id, { dtrx }),
52+
dataAbstraction().delete('page-snapshots', page.id, { dtrx }),
53+
dataAbstraction().delete('page', page.id, { dtrx }),
54+
]),
5555

56-
...groupJoinInvitations.map((invitation) =>
57-
dataAbstraction().delete(
58-
'group-join-invitation',
59-
`${invitation.group_id}:${invitation.user_id}`,
60-
{ dtrx, cacheOnly: true },
56+
...groupJoinInvitations.map((invitation) =>
57+
dataAbstraction().delete(
58+
'group-join-invitation',
59+
`${invitation.group_id}:${invitation.user_id}`,
60+
{ dtrx, cacheOnly: true },
61+
),
6162
),
62-
),
63-
...groupJoinRequests.map((request) =>
64-
dataAbstraction().delete(
65-
'group-join-request',
66-
`${request.group_id}:${request.user_id}`,
67-
{ dtrx, cacheOnly: true },
63+
...groupJoinRequests.map((request) =>
64+
dataAbstraction().delete(
65+
'group-join-request',
66+
`${request.group_id}:${request.user_id}`,
67+
{ dtrx, cacheOnly: true },
68+
),
6869
),
69-
),
70-
...groupMembers.map((member) =>
71-
dataAbstraction().delete(
72-
'group-member',
73-
`${member.group_id}:${member.user_id}`,
74-
{ dtrx, cacheOnly: true },
70+
...groupMembers.map((member) =>
71+
dataAbstraction().delete(
72+
'group-member',
73+
`${member.group_id}:${member.user_id}`,
74+
{ dtrx, cacheOnly: true },
75+
),
7576
),
76-
),
7777

78-
...permanentlyDeletedGroups.map((group) =>
79-
dataAbstraction().delete('group', group.id, { dtrx }),
80-
),
81-
]);
82-
});
78+
...permanentlyDeletedGroups.map((group) =>
79+
dataAbstraction().delete('group', group.id, { dtrx }),
80+
),
81+
]);
82+
});
83+
84+
if (permanentlyDeletedPages.length > 0) {
85+
console.log(
86+
`Successfully cleaned ${permanentlyDeletedPages.length} permanently deleted pages.`,
87+
);
88+
}
89+
90+
if (permanentlyDeletedGroups.length > 0) {
91+
console.log(
92+
`Successfully cleaned ${permanentlyDeletedGroups.length} permanently deleted groups.`,
93+
);
94+
}
95+
} catch (error) {
96+
console.error('Failed to clean deleted objects:', error);
97+
}
98+
99+
setTimeout(cleanDeletedObjects, 24 * 60 * 60 * 1000);
83100
}
84101

85102
void cleanDeletedObjects();
86-
87-
setInterval(cleanDeletedObjects, 24 * 60 * 60 * 1000);

packages/@deeplib/data/src/data-hashes/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const dataHashes = validateDataHashes({
2222
'group-member': groupMember,
2323
page: page,
2424
'page-backlinks': pageBacklinks,
25-
'page-snaphots': pageSnapshots,
25+
'page-snapshots': pageSnapshots,
2626
session: session,
2727
user: user,
2828
'user-page': userPage,

packages/@deeplib/data/src/snapshots.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export async function insertPageSnapshot(input: {
1919
dtrx: DataTransaction;
2020
}) {
2121
const pageSnapshotInfos: PageSnapshotInfo[] =
22-
await input.dataAbstraction.hget('page-snaphots', input.pageId, 'infos');
22+
await input.dataAbstraction.hget('page-snapshots', input.pageId, 'infos');
2323

2424
const pageSnapshot = await PageSnapshotModel.query(input.dtrx.trx)
2525
.insert({
@@ -58,7 +58,7 @@ export async function insertPageSnapshot(input: {
5858
// Update page snapshot infos
5959

6060
await input.dataAbstraction.hmset(
61-
'page-snaphots',
61+
'page-snapshots',
6262
input.pageId,
6363
{ infos: pageSnapshotInfos },
6464
{ dtrx: input.dtrx },

0 commit comments

Comments
 (0)