chore: remove chunked uploads for now
This commit is contained in:
@@ -1,79 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2026 Fluxer Contributors
|
||||
*
|
||||
* This file is part of Fluxer.
|
||||
*
|
||||
* Fluxer is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Fluxer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import {FilenameType} from '@fluxer/schema/src/primitives/FileValidators';
|
||||
import {
|
||||
coerceNumberFromString,
|
||||
createStringType,
|
||||
Int32Type,
|
||||
SnowflakeType,
|
||||
} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {z} from 'zod';
|
||||
|
||||
export const CreateChunkedUploadRequest = z.object({
|
||||
filename: FilenameType.describe('The name of the file being uploaded'),
|
||||
file_size: z.number().int().positive().describe('The total size of the file in bytes'),
|
||||
});
|
||||
export type CreateChunkedUploadRequest = z.infer<typeof CreateChunkedUploadRequest>;
|
||||
|
||||
export const CreateChunkedUploadResponse = z.object({
|
||||
upload_id: z.string().describe('The unique identifier for the upload session'),
|
||||
upload_filename: z.string().describe('The temporary filename used to reference this upload'),
|
||||
chunk_size: z.number().int().describe('The size of each chunk in bytes'),
|
||||
chunk_count: z.number().int().describe('The total number of chunks to upload'),
|
||||
});
|
||||
export type CreateChunkedUploadResponse = z.infer<typeof CreateChunkedUploadResponse>;
|
||||
|
||||
export const UploadChunkResponse = z.object({
|
||||
etag: z.string().describe('The ETag of the uploaded chunk'),
|
||||
});
|
||||
export type UploadChunkResponse = z.infer<typeof UploadChunkResponse>;
|
||||
|
||||
export const CompleteChunkedUploadRequest = z.object({
|
||||
etags: z
|
||||
.array(
|
||||
z.object({
|
||||
chunk_index: z.number().int().min(0).describe('The zero-based index of the chunk'),
|
||||
etag: z.string().describe('The ETag returned when the chunk was uploaded'),
|
||||
}),
|
||||
)
|
||||
.min(1)
|
||||
.describe('Array of chunk ETags in order'),
|
||||
});
|
||||
export type CompleteChunkedUploadRequest = z.infer<typeof CompleteChunkedUploadRequest>;
|
||||
|
||||
export const CompleteChunkedUploadResponse = z.object({
|
||||
upload_filename: z.string().describe('The temporary filename used to reference this upload'),
|
||||
file_size: z.number().int().describe('The total size of the uploaded file in bytes'),
|
||||
content_type: z.string().describe('The MIME type of the uploaded file'),
|
||||
});
|
||||
export type CompleteChunkedUploadResponse = z.infer<typeof CompleteChunkedUploadResponse>;
|
||||
|
||||
export const ChunkedUploadParam = z.object({
|
||||
channel_id: SnowflakeType.describe('The ID of the channel'),
|
||||
upload_id: createStringType(1, 128).describe('The ID of the chunked upload session'),
|
||||
});
|
||||
export type ChunkedUploadParam = z.infer<typeof ChunkedUploadParam>;
|
||||
|
||||
export const ChunkedUploadChunkParam = z.object({
|
||||
channel_id: SnowflakeType.describe('The ID of the channel'),
|
||||
upload_id: createStringType(1, 128).describe('The ID of the chunked upload session'),
|
||||
chunk_index: coerceNumberFromString(Int32Type.min(0)).describe('The zero-based index of the chunk'),
|
||||
});
|
||||
export type ChunkedUploadChunkParam = z.infer<typeof ChunkedUploadChunkParam>;
|
||||
@@ -48,7 +48,6 @@ const ClientAttachmentBase = z.object({
|
||||
export const ClientAttachmentRequest = ClientAttachmentBase.extend({
|
||||
id: coerceNumberFromString(Int32Type).describe('The client-side identifier for this attachment'),
|
||||
filename: FilenameType.describe('The name of the file being uploaded'),
|
||||
uploaded_filename: z.string().optional().describe('The temporary filename from a completed chunked upload'),
|
||||
});
|
||||
export type ClientAttachmentRequest = z.infer<typeof ClientAttachmentRequest>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user