Skip to content

Commit

Permalink
fix: small bugs when uploading
Browse files Browse the repository at this point in the history
  • Loading branch information
diced committed Jun 2, 2024
1 parent 396a02e commit 6de3260
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 32 deletions.
2 changes: 1 addition & 1 deletion src/components/pages/upload/uploadFiles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ export function uploadFiles(
setLoading(false);
setProgress(0);

if ((res as ErrorBody).code) {
if ((res as ErrorBody).statusCode) {
notifications.update({
id: 'upload',
title: 'Error uploading files',
Expand Down
7 changes: 6 additions & 1 deletion src/components/pages/upload/uploadPartialFiles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@ export async function uploadPartialFiles(
() => {
const res: Response['/api/upload'] = JSON.parse(req.responseText);

if ((res as ErrorBody).code) {
console.log(res);

if ((res as ErrorBody).message) {
notifications.update({
id: 'upload-partial',
title: 'Error uploading files',
Expand All @@ -150,6 +152,9 @@ export async function uploadPartialFiles(
loading: false,
});
ready = false;
setFiles([]);
setProgress(0);
setLoading(false);
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import { FastifyRequest } from 'fastify';
import { writeFile } from 'fs/promises';
import { extname, join } from 'path';
import { Worker } from 'worker_threads';
import { config } from '../config';
import { hashPassword } from '../crypto';
import { prisma } from '../db';
import { log } from '../logger';
import { guess } from '../mimes';
import { formatFileName } from '../uploader/formatFileName';
import { UploadHeaders, UploadOptions } from '../uploader/parseHeaders';
import { config } from '../../config';
import { hashPassword } from '../../crypto';
import { prisma } from '../../db';
import { log } from '../../logger';
import { guess } from '../../mimes';
import { formatFileName } from '../../uploader/formatFileName';
import { UploadHeaders, UploadOptions } from '../../uploader/parseHeaders';

const logger = log('api').c('upload');
export async function handlePartialUpload({
Expand All @@ -34,9 +34,11 @@ export async function handlePartialUpload({
const extension = options.overrides?.extension ?? extname(options.partial.filename);
if (config.files.disabledExtensions.includes(extension)) throw `File extension ${extension} is not allowed`;

let fileName = formatFileName(options.format || config.files.defaultFormat, options.partial.filename);
if (options.overrides?.filename) {
fileName = options.overrides!.filename!;
const format = options.format || config.files.defaultFormat;
let fileName = formatFileName(format, options.partial.filename);

if (options.overrides?.filename || format === 'name') {
if (options.overrides?.filename) fileName = options.overrides!.filename!;
const existing = await prisma.file.findFirst({
where: {
name: {
Expand Down
33 changes: 17 additions & 16 deletions src/lib/api/upload.ts → src/lib/api/upload/upload.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { ApiUploadResponse, MultipartFileBuffer } from '@/server/routes/api/upload';
import { FastifyRequest } from 'fastify';
import { extname } from 'path';
import { bytes } from '../bytes';
import { compress } from '../compress';
import { config } from '../config';
import { hashPassword } from '../crypto';
import { datasource } from '../datasource';
import { prisma } from '../db';
import { fileSelect } from '../db/models/file';
import { onUpload } from '../discord';
import { removeGps } from '../gps';
import { log } from '../logger';
import { guess } from '../mimes';
import { formatFileName } from '../uploader/formatFileName';
import { UploadHeaders, UploadOptions } from '../uploader/parseHeaders';
import { bytes } from '../../bytes';
import { compress } from '../../compress';
import { config } from '../../config';
import { hashPassword } from '../../crypto';
import { datasource } from '../../datasource';
import { prisma } from '../../db';
import { fileSelect } from '../../db/models/file';
import { onUpload } from '../../discord';
import { removeGps } from '../../gps';
import { log } from '../../logger';
import { guess } from '../../mimes';
import { formatFileName } from '../../uploader/formatFileName';
import { UploadHeaders, UploadOptions } from '../../uploader/parseHeaders';

const logger = log('api').c('upload');

Expand All @@ -38,10 +38,11 @@ export async function handleFile({
if (file.file.bytesRead > config.files.maxFileSize)
throw `File size is too large. Maximum file size is ${config.files.maxFileSize} bytes`;

let fileName = formatFileName(options.format || config.files.defaultFormat, file.filename);
const format = options.format || config.files.defaultFormat;
let fileName = formatFileName(format, file.filename);

if (options.overrides?.filename) {
fileName = options.overrides!.filename!;
if (options.overrides?.filename || format === 'name') {
if (options.overrides?.filename) fileName = options.overrides!.filename!;
const existing = await prisma.file.findFirst({
where: {
name: {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/fetchApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export async function fetchApi<Response = any>(
} else {
error = {
message: await res.text(),
code: res.status,
statusCode: res.status,
} as ErrorBody;
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/lib/response.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ export interface NextApiReq<Body = any, Query = any, Headers = any> extends Next
export type ErrorBody = {
message?: string;
data?: any;
code?: any;
statusCode?: number;
error?: string;

[key: string]: any;
};
Expand Down
1 change: 1 addition & 0 deletions src/lib/warningModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export function openWarningModal(options: WarningModalOptions) {
onCancel: () => modals.closeAll(),
onConfirm: options.onConfirm,
zIndex: 10320948239487,
size: 'auto',
});
}

Expand Down
4 changes: 2 additions & 2 deletions src/server/routes/api/upload.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { handlePartialUpload } from '@/lib/api/partialUpload';
import { handleFile } from '@/lib/api/upload';
import { handlePartialUpload } from '@/lib/api/upload/partialUpload';
import { handleFile } from '@/lib/api/upload/upload';
import { bytes } from '@/lib/bytes';
import { config } from '@/lib/config';
import { prisma } from '@/lib/db';
Expand Down

0 comments on commit 6de3260

Please sign in to comment.