diff --git a/src/routes/(console)/project-[project]/overview/keys/create/+page.svelte b/src/routes/(console)/project-[project]/overview/keys/create/+page.svelte index cdc986601..68f04d424 100644 --- a/src/routes/(console)/project-[project]/overview/keys/create/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/create/+page.svelte @@ -4,7 +4,7 @@ import { InputText } from '$lib/elements/forms/index.js'; import { Wizard } from '$lib/layout'; import { Fieldset, Layout, Typography } from '@appwrite.io/pink-svelte'; - import ExpirationInput from '../expirationInput.svelte'; + import { ExpirationInput } from '$lib/components'; import Scopes from '../scopes.svelte'; import Button from '$lib/elements/forms/button.svelte'; import Form from '$lib/elements/forms/form.svelte'; diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte index 7d76552a5..4dfbcfd15 100644 --- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte +++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte @@ -109,11 +109,13 @@ async function createFileToken(expiry: string) { try { - console.log(JSON.stringify($file, null, 2)); + await sdk.forProject.tokens.createFileToken( + $file.bucketId, + $file.$id, + expiry, + [Permission.read(Role.any())] + ); - await sdk.forProject.tokens.createFileToken($file.bucketId, $file.$id, expiry, [ - Permission.read(Role.any()) - ]); await invalidate(Dependencies.FILE_TOKENS); addNotification({ message: 'File token created', @@ -131,8 +133,8 @@ async function updateFileTokenExpiry(newExpiry: string) { try { - // TODO: permission missing on object type. await sdk.forProject.tokens.update(selectedFileToken.$id, newExpiry); + await invalidate(Dependencies.FILE_TOKENS); addNotification({ message: 'File token updated', type: 'success' @@ -149,10 +151,22 @@ } } - async function copyPreviewWithToken(token: string) { - await copy( - `${sdk.forProject.storage.getFilePreview($file.bucketId, $file.$id)}&token=${token}` - ); + async function copyPreviewWithToken(token: Models.ResourceToken) { + try { + const jwt = await sdk.forProject.tokens.getJWT(token.$id); + await copy( + `${sdk.forProject.storage.getFilePreview($file.bucketId, $file.$id)}&token=${jwt.jwt}` + ); + addNotification({ + message: 'File url copied', + type: 'success' + }); + } catch (error) { + addNotification({ + message: error.message, + type: 'error' + }); + } } onMount(async () => { @@ -229,22 +243,20 @@
-
- {#if fileToken.$createdAt}
- {@const formattedDate = cleanFormattedDate(fileToken.$createdAt, true)}
+ {#if fileToken.accessedAt}
+ {@const formattedDate = cleanFormattedDate(fileToken.accessedAt, true)}
This token was last accessed on {formattedDate}
{:else}
diff --git a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/store.ts b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/store.ts
index fd48d30c7..93f37a676 100644
--- a/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/store.ts
+++ b/src/routes/(console)/project-[project]/storage/bucket-[bucket]/file-[file]/store.ts
@@ -5,12 +5,13 @@ import type { Column } from '$lib/helpers/types';
export const file = derived(page, ($page) => $page.data.file as Models.File);
-export const tokens = derived(page, ($page) => $page.data.tokens as Models.ResourceTokenList);
+export const tokens = derived(page, ($page) => $page.data.tokens as Models.ResourceTokenList & {
+ accessedAt: string,
+});
export const columns = writable