mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 08:06:56 +00:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { generateDataKey, wrapDataKey, encryptString } from "$lib/modules/crypto";
|
|
import type { MasterKey } from "$lib/stores";
|
|
import { trpc } from "$trpc/client";
|
|
|
|
export const requestCategoryCreation = async (
|
|
name: string,
|
|
parentId: "root" | number,
|
|
masterKey: MasterKey,
|
|
) => {
|
|
const { dataKey, dataKeyVersion } = await generateDataKey();
|
|
const nameEncrypted = await encryptString(name, dataKey);
|
|
|
|
try {
|
|
await trpc().category.create.mutate({
|
|
parent: parentId,
|
|
mekVersion: masterKey.version,
|
|
dek: await wrapDataKey(dataKey, masterKey.key),
|
|
dekVersion: dataKeyVersion,
|
|
name: nameEncrypted.ciphertext,
|
|
nameIv: nameEncrypted.iv,
|
|
});
|
|
return true;
|
|
} catch {
|
|
// TODO: Error Handling
|
|
return false;
|
|
}
|
|
};
|
|
|
|
export const requestFileRemovalFromCategory = async (fileId: number, categoryId: number) => {
|
|
try {
|
|
await trpc().category.removeFile.mutate({ id: categoryId, file: fileId });
|
|
return true;
|
|
} catch {
|
|
// TODO: Error Handling
|
|
return false;
|
|
}
|
|
};
|