feat: reverse shares (#86)

* add first concept

* add reverse share funcionality to frontend

* allow creator to limit share expiration

* moved reverse share in seperate module

* add table to manage reverse shares

* delete complete share if reverse share was deleted

* optimize function names

* add db migration

* enable reverse share email notifications

* fix config variable descriptions

* fix migration for new installations
This commit is contained in:
Elias Schneider
2023-01-26 13:44:04 +01:00
committed by GitHub
parent 1ceb07b89e
commit 4a5fb549c6
43 changed files with 1456 additions and 280 deletions

View File

@@ -1,6 +1,8 @@
import { setCookie } from "cookies-next";
import { FileUploadResponse } from "../types/File.type";
import {
CreateShare,
MyReverseShare,
MyShare,
Share,
ShareMetaData,
@@ -98,6 +100,34 @@ const uploadFile = async (
).data;
};
const createReverseShare = async (
shareExpiration: string,
maxShareSize: number,
sendEmailNotification: boolean
) => {
return (
await api.post("reverseShares", {
shareExpiration,
maxShareSize: maxShareSize.toString(),
sendEmailNotification,
})
).data;
};
const getMyReverseShares = async (): Promise<MyReverseShare[]> => {
return (await api.get("reverseShares")).data;
};
const setReverseShare = async (reverseShareToken: string) => {
const { data } = await api.get(`/reverseShares/${reverseShareToken}`);
setCookie("reverse_share_token", reverseShareToken);
return data;
};
const removeReverseShare = async (id: string) => {
await api.delete(`/reverseShares/${id}`);
};
export default {
create,
completeShare,
@@ -109,4 +139,8 @@ export default {
isShareIdAvailable,
downloadFile,
uploadFile,
setReverseShare,
createReverseShare,
getMyReverseShares,
removeReverseShare,
};