mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 16:16:55 +00:00
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { callPostApi } from "$lib/hooks";
|
|
import { encryptData } from "$lib/modules/crypto";
|
|
import { storeFileThumbnailCache } from "$lib/modules/file";
|
|
import type { CategoryFileAddRequest } from "$lib/server/schemas";
|
|
import { requestFileThumbnailUpload } from "$lib/services/file";
|
|
|
|
export { requestCategoryCreation, requestFileRemovalFromCategory } from "$lib/services/category";
|
|
export { requestFileDownload } from "$lib/services/file";
|
|
|
|
export const requestThumbnailUpload = async (
|
|
fileId: number,
|
|
thumbnail: Blob,
|
|
dataKey: CryptoKey,
|
|
dataKeyVersion: Date,
|
|
) => {
|
|
const thumbnailBuffer = await thumbnail.arrayBuffer();
|
|
const thumbnailEncrypted = await encryptData(thumbnailBuffer, dataKey);
|
|
const res = await requestFileThumbnailUpload(fileId, dataKeyVersion, thumbnailEncrypted);
|
|
if (!res.ok) return false;
|
|
|
|
storeFileThumbnailCache(fileId, thumbnailBuffer); // Intended
|
|
return true;
|
|
};
|
|
|
|
export const requestFileAdditionToCategory = async (fileId: number, categoryId: number) => {
|
|
const res = await callPostApi<CategoryFileAddRequest>(`/api/category/${categoryId}/file/add`, {
|
|
file: fileId,
|
|
});
|
|
return res.ok;
|
|
};
|