Add MP3 upload pipeline foundation

This commit is contained in:
diyaa
2026-05-28 17:43:00 +02:00
parent 799c07b068
commit 98edfa0faf
24 changed files with 2469 additions and 93 deletions
+119 -11
View File
@@ -145,10 +145,82 @@
]
}
},
"/api/v1/uploads/{uploadId}/file": {
"put": {
"operationId": "UploadsController_uploadFile_v1",
"parameters": [
{
"name": "uploadId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"audio/mpeg": {
"schema": {
"type": "string",
"format": "binary"
}
},
"audio/mp3": {
"schema": {
"type": "string",
"format": "binary"
}
},
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UploadSessionStatusResponseDto"
}
}
}
}
},
"tags": [
"uploads"
]
}
},
"/api/v1/uploads/{uploadId}/finalize": {
"post": {
"operationId": "UploadsController_finalize_v1",
"parameters": [],
"parameters": [
{
"name": "uploadId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UploadFinalizeRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
@@ -161,7 +233,6 @@
}
}
},
"summary": "Reserved for the next milestone",
"tags": [
"uploads"
]
@@ -414,6 +485,14 @@
"nextOffset": {
"type": "number",
"example": 0
},
"trackId": {
"type": "string",
"format": "uuid"
},
"assetId": {
"type": "string",
"format": "uuid"
}
},
"required": [
@@ -447,6 +526,10 @@
"nextOffset": {
"type": "string",
"example": 0
},
"finalizedAt": {
"type": "string",
"example": "2026-05-28T12:00:00.000Z"
}
},
"required": [
@@ -457,21 +540,46 @@
"nextOffset"
]
},
"UploadFinalizeResponseDto": {
"UploadFinalizeRequestDto": {
"type": "object",
"properties": {
"statusCode": {
"type": "number",
"example": 501
},
"message": {
"title": {
"type": "string",
"example": "Upload finalization is not implemented yet."
"example": "Track Title"
},
"artist": {
"type": "string",
"example": "Track Artist"
},
"album": {
"type": "string",
"example": "Album Title"
},
"durationMs": {
"type": "number",
"example": 245000
}
},
"required": [
"statusCode",
"message"
"title",
"artist"
]
},
"UploadFinalizeResponseDto": {
"type": "object",
"properties": {
"trackId": {
"type": "string",
"format": "uuid"
},
"assetId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"trackId",
"assetId"
]
},
"LibraryTrackDto": {