Rewrote backend in Rust

This commit is contained in:
2022-10-10 23:07:40 +02:00
parent fccb823801
commit 89b6513905
75 changed files with 2508 additions and 7490 deletions

View File

@@ -5,6 +5,7 @@ import {
post_token_form,
isErrorResponse
} from './base';
import axios from 'axios';
export const get_root = (
token: string
@@ -31,7 +32,7 @@ export const create_folder = (
Responses.CreateFolder | Responses.CreateFolderExists | Responses.Error
> =>
post_token<Requests.CreateFolder>(
'/api/fs/createFolder',
'/api/fs/create_folder',
{
parent: parent,
name: name
@@ -47,7 +48,7 @@ export const create_file = (
Responses.CreateFolder | Responses.CreateFolderExists | Responses.Error
> =>
post_token<Requests.CreateFolder>(
'/api/fs/createFile',
'/api/fs/create_file',
{
parent: parent,
name: name
@@ -89,14 +90,22 @@ export async function upload_file(
if ('exists' in node && !node.isFile)
return { statusCode: 400, message: 'File exists as folder' };
const form = new FormData();
form.set('file', file.file);
return post_token_form(
`/api/fs/upload/${node.id}`,
form,
token,
onProgress
);
return axios
.post(`/api/fs/upload/${node.id}`, file.file, {
headers: {
Authorization: 'Bearer ' + token,
'Content-type': 'multipart/form-data'
},
onUploadProgress: onProgress
})
.then((res) => {
console.log(res);
return res.data;
})
.catch((err) => {
console.log(err);
return err.response.data;
});
}
export function download_file(token: string, id: number) {

View File

@@ -18,12 +18,19 @@ export async function check_token(
token: TokenInjectType
): Promise<string | void> {
if (!token.jwt.value) return token.logout();
const payload = jwtDecode<JwtPayload>(token.jwt.value);
if (!payload) return token.logout();
// Expires in more than 60 Minute
if (payload.exp && payload.exp > Math.floor(Date.now() / 1000 + 60 * 60))
return token.jwt.value;
return update_token(token);
try {
const payload = jwtDecode<JwtPayload>(token.jwt.value);
if (!payload) return token.logout();
// Expires in more than 60 Minute
if (
payload.exp &&
payload.exp > Math.floor(Date.now() / 1000 + 60 * 60)
)
return token.jwt.value;
return update_token(token);
} catch {
return token.logout();
}
}
export type TokenInjectType = {