mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
interim+500
interim+500 interim+500
This commit is contained in:
parent
9f3a9030c7
commit
97185964cb
2 changed files with 23 additions and 17 deletions
|
|
@ -223,7 +223,8 @@ describe('/upload', () => {
|
|||
});
|
||||
});
|
||||
|
||||
it('should reject attempt to start upload of existing incomplete asset', async () => {
|
||||
// TODO: find a way to test interim responses
|
||||
it('should return 500 if existing incomplete asset', async () => {
|
||||
const content = randomBytes(1024);
|
||||
|
||||
const firstRequest = await request(app)
|
||||
|
|
@ -252,8 +253,7 @@ describe('/upload', () => {
|
|||
.set('Upload-Length', '1024')
|
||||
.send();
|
||||
|
||||
expect(secondRequest.status).toBe(400);
|
||||
expect(secondRequest.headers['location']).toEqual(firstRequest.headers['location']);
|
||||
expect(secondRequest.status).toBe(500);
|
||||
expect(secondRequest.text).toEqual('Incomplete asset already exists');
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,12 @@ export class AssetUploadService extends BaseService {
|
|||
assetData.metadata,
|
||||
);
|
||||
} catch (error: any) {
|
||||
if (isAssetChecksumConstraint(error)) {
|
||||
if (!isAssetChecksumConstraint(error)) {
|
||||
this.logger.error(`Error creating upload asset record: ${error.message}`);
|
||||
res.status(500).send('Error creating upload asset record');
|
||||
return;
|
||||
}
|
||||
|
||||
const duplicate = await this.assetRepository.getUploadAssetIdByChecksum(req.auth.user.id, dto.checksum);
|
||||
if (!duplicate) {
|
||||
res.status(500).send('Error locating duplicate for checksum constraint');
|
||||
|
|
@ -67,12 +72,13 @@ export class AssetUploadService extends BaseService {
|
|||
if (duplicate.status !== AssetStatus.Partial) {
|
||||
return this.sendAlreadyCompletedProblem(res);
|
||||
}
|
||||
|
||||
const location = `/api/upload/${duplicate.id}`;
|
||||
res.status(400).setHeader('Location', location).send('Incomplete asset already exists');
|
||||
return;
|
||||
if (version <= MAX_RUFH_INTEROP_VERSION) {
|
||||
this.sendInterimResponse(res, location, version);
|
||||
}
|
||||
this.logger.error(`Error creating upload asset record: ${error.message}`);
|
||||
res.status(500).send('Error creating upload asset record');
|
||||
// this is a 5xx to indicate the client should do offset retrieval and resume
|
||||
res.status(500).send('Incomplete asset already exists');
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue