Skip to content

Commit 6e18d0a

Browse files
committed
update: misc changes.
1 parent b10e976 commit 6e18d0a

File tree

8 files changed

+126
-43
lines changed

8 files changed

+126
-43
lines changed

src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/helpers/sdk.ts

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import { sdk } from '$lib/stores/sdk';
22
import type { Page } from '@sveltejs/kit';
33
import type { TerminologyResult } from './types';
4-
import { type DatabaseType, type Entity, type EntityList, toSupportiveEntity } from './terminology';
4+
import {
5+
type DatabaseType,
6+
type Entity,
7+
type EntityList,
8+
type Record,
9+
toSupportiveEntity
10+
} from './terminology';
511
import type { Models } from '@appwrite.io/console';
612

713
export type DatabaseSdkResult = {
@@ -32,6 +38,26 @@ export type DatabaseSdkResult = {
3238
databaseType?: DatabaseType;
3339
}) => Promise<EntityList>;
3440
delete: (params: { databaseId: string; databaseType?: DatabaseType }) => Promise<{}>;
41+
deleteEntity: (params: {
42+
databaseId: string;
43+
entityId: string;
44+
databaseType?: DatabaseType;
45+
}) => Promise<{}>;
46+
updateRecord: (params: {
47+
databaseId: string;
48+
entityId: string;
49+
recordId: string;
50+
data?: object;
51+
permissions?: string[];
52+
databaseType?: DatabaseType;
53+
}) => Promise<Record>;
54+
updateRecordPermissions: (params: {
55+
databaseId: string;
56+
entityId: string;
57+
recordId: string;
58+
permissions: string[];
59+
databaseType?: DatabaseType;
60+
}) => Promise<Record>;
3561
};
3662

3763
export function useDatabasesSdk(
@@ -169,6 +195,76 @@ export function useDatabasesSdk(
169195
default:
170196
throw new Error(`Unknown database type`);
171197
}
198+
},
199+
200+
async deleteEntity(params) {
201+
switch (type ?? params.databaseType) {
202+
case 'legacy': /* databases api */
203+
case 'tablesdb':
204+
return await baseSdk.tablesDB.deleteTable({
205+
databaseId: params.databaseId,
206+
tableId: params.entityId
207+
});
208+
case 'documentsdb':
209+
return await baseSdk.documentsDB.deleteCollection({
210+
databaseId: params.databaseId,
211+
collectionId: params.entityId
212+
});
213+
case 'vectordb':
214+
throw new Error('Database type not supported yet');
215+
default:
216+
throw new Error(`Unknown database type`);
217+
}
218+
},
219+
220+
async updateRecord(params) {
221+
switch (type ?? params.databaseType) {
222+
case 'legacy': /* databases api */
223+
case 'tablesdb':
224+
return await baseSdk.tablesDB.updateRow({
225+
databaseId: params.databaseId,
226+
tableId: params.entityId,
227+
rowId: params.recordId,
228+
data: params.data,
229+
permissions: params.permissions
230+
});
231+
case 'documentsdb':
232+
return await baseSdk.documentsDB.updateDocument({
233+
databaseId: params.databaseId,
234+
collectionId: params.entityId,
235+
documentId: params.recordId,
236+
data: params.data,
237+
permissions: params.permissions
238+
});
239+
case 'vectordb':
240+
throw new Error('Database type not supported yet');
241+
default:
242+
throw new Error(`Unknown database type`);
243+
}
244+
},
245+
246+
async updateRecordPermissions(params) {
247+
switch (type ?? params.databaseType) {
248+
case 'legacy': /* databases api */
249+
case 'tablesdb':
250+
return await baseSdk.tablesDB.updateRow({
251+
databaseId: params.databaseId,
252+
tableId: params.entityId,
253+
rowId: params.recordId,
254+
permissions: params.permissions
255+
});
256+
case 'documentsdb':
257+
return await baseSdk.documentsDB.updateDocument({
258+
databaseId: params.databaseId,
259+
collectionId: params.entityId,
260+
documentId: params.recordId,
261+
permissions: params.permissions
262+
});
263+
case 'vectordb':
264+
throw new Error('Database type not supported yet');
265+
default:
266+
throw new Error(`Unknown database type`);
267+
}
172268
}
173269
};
174270
}

src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/field/editPermissions.svelte

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
<script lang="ts">
2-
import { page } from '$app/state';
3-
import { sdk } from '$lib/stores/sdk';
42
import { invalidate } from '$app/navigation';
53
import { Alert } from '@appwrite.io/pink-svelte';
64
import { Permissions } from '$lib/components/permissions';
@@ -28,7 +26,7 @@
2826
2927
let showPermissionAlert = $state(true);
3028
31-
const { analytics, dependencies, terminology } = getTerminologies();
29+
const { analytics, dependencies, terminology, databasesSdk } = getTerminologies();
3230
const entityTerm = terminology.entity.lower.singular;
3331
const recordTerm = terminology.record.lower.singular;
3432
@@ -43,26 +41,16 @@
4341
try {
4442
const { $databaseId: databaseId, $id: recordId, entityId } = toSupportiveRecord(record);
4543
46-
if (terminology.type === 'documentsdb') {
47-
await sdk
48-
.forProject(page.params.region, page.params.project)
49-
.documentsDB.updateDocument({
50-
databaseId,
51-
collectionId: entityId,
52-
documentId: recordId,
53-
permissions
54-
});
55-
} else {
56-
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
57-
databaseId,
58-
tableId: entityId,
59-
rowId: recordId,
60-
permissions
61-
});
62-
}
44+
await databasesSdk.updateRecordPermissions({
45+
databaseId,
46+
entityId,
47+
recordId,
48+
permissions
49+
});
6350
51+
// TODO: @itznotabug, make suer this doesn't trigger or lose spreadsheet scroll state!
52+
await invalidate(dependencies.record.singular);
6453
arePermsDisabled = true;
65-
await invalidate(dependencies.record.plural);
6654
addNotification({
6755
message: 'Permissions have been updated',
6856
type: 'success'

src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
1818
const { data }: PageProps = $props();
1919
20-
const { terminology } = getTerminologies();
20+
const { databasesSdk, terminology } = getTerminologies();
2121
const entityTitle = terminology.entity.title;
2222
const entityLower = terminology.entity.lower;
2323
@@ -76,7 +76,7 @@
7676
{#if data.view === 'grid'}
7777
<Grid {data} {terminology} bind:showCreate={$showCreateEntity} />
7878
{:else}
79-
<Table {data} {terminology} />
79+
<Table {terminology} {databasesSdk} entities={data.entities} />
8080
{/if}
8181

8282
<PaginationWithLimit

src/routes/(console)/project-[region]-[project]/databases/database-[database]/collection-[collection]/+layout.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
$randomDataModalState.onSubmit = async () => await createFakeData();
6060
6161
return realtime.forProject(page.params.region, ['project', 'console'], (response) => {
62-
if (response.events.includes('databases.*.collections.*.indexes.*')) {
62+
if (response.events.includes('documentsdb.*.collections.*.indexes.*')) {
6363
// don't invalidate when -
6464
// 1. from faker
6565
// 2. ai indexes creation

src/routes/(console)/project-[region]-[project]/databases/database-[database]/collection-[collection]/indexes/+page.svelte

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22
import { page } from '$app/state';
33
import { sdk } from '$lib/stores/sdk';
44
import type { PageProps } from './$types';
5-
import { showCreateColumnSheet } from '$database/table-[table]/store';
65
import {
76
type CreateIndexesCallbackType,
87
Indexes,
98
EmptySheet,
109
EmptySheetCards
1110
} from '$database/(entity)';
1211
import { IconPlus } from '@appwrite.io/pink-icons-svelte';
13-
import { onDestroy } from 'svelte';
1412
1513
let { data }: PageProps = $props();
1614
@@ -44,8 +42,6 @@
4442
)
4543
);
4644
}
47-
48-
onDestroy(() => ($showCreateColumnSheet.show = false));
4945
</script>
5046

5147
<Indexes {onCreateIndex} {onDeleteIndexes} entity={data.collection}>

src/routes/(console)/project-[region]-[project]/databases/database-[database]/collection-[collection]/spreadsheet.svelte

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,8 @@
359359
}
360360
361361
if (action === 'delete') {
362-
// showDelete = true;
363-
// selectedRowForDelete = document.$id;
362+
selectedDocumentForDelete = document.$id;
363+
showDelete = true;
364364
}
365365
366366
if (action === 'activity') {
@@ -776,7 +776,7 @@
776776

777777
<p>
778778
{#if isSingle}
779-
Are you sure you want to delete this row from <b>{collection.name}</b>?
779+
Are you sure you want to delete this document from <b>{collection.name}</b>?
780780
{:else}
781781
Are you sure you want to delete <b>{selectedDocuments.length}</b>
782782
{selectedDocuments.length > 1 ? 'documents' : 'document'} from <b>{collection.name}</b>?

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/editPermissions.svelte

Whitespace-only changes.

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table.svelte

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,31 @@
1111
import { Dependencies } from '$lib/constants';
1212
import DualTimeView from '$lib/components/dualTimeView.svelte';
1313
import { canWriteTables } from '$lib/stores/roles';
14-
import { sdk } from '$lib/stores/sdk';
15-
import type { PageData } from './$types';
1614
import { Table } from '@appwrite.io/pink-svelte';
1715
import { tableViewColumns, buildEntityRoute } from './store';
1816
import { subNavigation } from '$lib/stores/database';
19-
import { type TerminologyResult } from '$database/(entity)';
17+
import {
18+
type DatabaseSdkResult,
19+
type EntityList,
20+
type TerminologyResult
21+
} from '$database/(entity)';
2022
2123
const {
22-
data,
23-
terminology
24+
entities,
25+
terminology,
26+
databasesSdk
2427
}: {
25-
data: PageData;
28+
entities: EntityList;
2629
terminology: TerminologyResult;
30+
databasesSdk: DatabaseSdkResult;
2731
} = $props();
2832
2933
const entitySingular = $derived(terminology.entity.lower.singular);
30-
3134
async function onDelete(batchDelete: DeleteOperation): Promise<DeleteOperationState> {
32-
const result = await batchDelete((tableId) =>
33-
sdk.forProject(page.params.region, page.params.project).tablesDB.deleteTable({
35+
const result = await batchDelete((entityId) =>
36+
databasesSdk.deleteEntity({
3437
databaseId: page.params.database,
35-
tableId
38+
entityId
3639
})
3740
);
3841
@@ -63,7 +66,7 @@
6366
{/snippet}
6467

6568
{#snippet children(root)}
66-
{#each data.entities.entities as entity (entity.$id)}
69+
{#each entities.entities as entity (entity.$id)}
6770
<Table.Row.Link
6871
{root}
6972
id={entity.$id}

0 commit comments

Comments
 (0)