chore(server): optional originalMimeType in asset response payload (#10272)

* chore(server): optional originalMimeType in asset response payload

* lint

* Update web/src/lib/utils/asset-utils.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* fix permission of shared link

* test

* test

* test

* test server

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
Alex 2024-06-13 09:21:47 -05:00 committed by GitHub
parent df31eb1214
commit e2a2c86a31
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 126 additions and 14 deletions

View file

@ -20,7 +20,7 @@ export class SanitizedAssetResponseDto {
@ApiProperty({ enumName: 'AssetTypeEnum', enum: AssetType })
type!: AssetType;
thumbhash!: string | null;
originalMimeType!: string;
originalMimeType?: string;
resized!: boolean;
localDateTime!: Date;
duration!: string;

View file

@ -164,6 +164,36 @@ describe(SharedLinkService.name, () => {
key: Buffer.from('random-bytes', 'utf8'),
});
});
it('should create a shared link with allowDownload set to false when showMetadata is false', async () => {
accessMock.asset.checkOwnerAccess.mockResolvedValue(new Set([assetStub.image.id]));
shareMock.create.mockResolvedValue(sharedLinkStub.individual);
await sut.create(authStub.admin, {
type: SharedLinkType.INDIVIDUAL,
assetIds: [assetStub.image.id],
showMetadata: false,
allowDownload: true,
allowUpload: true,
});
expect(accessMock.asset.checkOwnerAccess).toHaveBeenCalledWith(
authStub.admin.user.id,
new Set([assetStub.image.id]),
);
expect(shareMock.create).toHaveBeenCalledWith({
type: SharedLinkType.INDIVIDUAL,
userId: authStub.admin.user.id,
albumId: null,
allowDownload: false,
allowUpload: true,
assets: [{ id: assetStub.image.id }],
description: null,
expiresAt: null,
showExif: false,
key: Buffer.from('random-bytes', 'utf8'),
});
});
});
describe('update', () => {

View file

@ -84,7 +84,7 @@ export class SharedLinkService {
password: dto.password,
expiresAt: dto.expiresAt || null,
allowUpload: dto.allowUpload ?? true,
allowDownload: dto.allowDownload ?? true,
allowDownload: dto.showMetadata === false ? false : dto.allowDownload ?? true,
showExif: dto.showMetadata ?? true,
});