feat(server): add originalFileName to SyncAssetV1 (#18767)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
shenlong 2025-05-30 20:26:35 +05:30 committed by GitHub
parent aebd68e24e
commit b854a3dd47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 23 additions and 1 deletions

View File

@ -20,6 +20,7 @@ class SyncAssetV1 {
required this.id,
required this.isFavorite,
required this.localDateTime,
required this.originalFileName,
required this.ownerId,
required this.thumbhash,
required this.type,
@ -40,6 +41,8 @@ class SyncAssetV1 {
DateTime? localDateTime;
String originalFileName;
String ownerId;
String? thumbhash;
@ -57,6 +60,7 @@ class SyncAssetV1 {
other.id == id &&
other.isFavorite == isFavorite &&
other.localDateTime == localDateTime &&
other.originalFileName == originalFileName &&
other.ownerId == ownerId &&
other.thumbhash == thumbhash &&
other.type == type &&
@ -72,13 +76,14 @@ class SyncAssetV1 {
(id.hashCode) +
(isFavorite.hashCode) +
(localDateTime == null ? 0 : localDateTime!.hashCode) +
(originalFileName.hashCode) +
(ownerId.hashCode) +
(thumbhash == null ? 0 : thumbhash!.hashCode) +
(type.hashCode) +
(visibility.hashCode);
@override
String toString() => 'SyncAssetV1[checksum=$checksum, deletedAt=$deletedAt, fileCreatedAt=$fileCreatedAt, fileModifiedAt=$fileModifiedAt, id=$id, isFavorite=$isFavorite, localDateTime=$localDateTime, ownerId=$ownerId, thumbhash=$thumbhash, type=$type, visibility=$visibility]';
String toString() => 'SyncAssetV1[checksum=$checksum, deletedAt=$deletedAt, fileCreatedAt=$fileCreatedAt, fileModifiedAt=$fileModifiedAt, id=$id, isFavorite=$isFavorite, localDateTime=$localDateTime, originalFileName=$originalFileName, ownerId=$ownerId, thumbhash=$thumbhash, type=$type, visibility=$visibility]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
@ -105,6 +110,7 @@ class SyncAssetV1 {
} else {
// json[r'localDateTime'] = null;
}
json[r'originalFileName'] = this.originalFileName;
json[r'ownerId'] = this.ownerId;
if (this.thumbhash != null) {
json[r'thumbhash'] = this.thumbhash;
@ -132,6 +138,7 @@ class SyncAssetV1 {
id: mapValueOfType<String>(json, r'id')!,
isFavorite: mapValueOfType<bool>(json, r'isFavorite')!,
localDateTime: mapDateTime(json, r'localDateTime', r''),
originalFileName: mapValueOfType<String>(json, r'originalFileName')!,
ownerId: mapValueOfType<String>(json, r'ownerId')!,
thumbhash: mapValueOfType<String>(json, r'thumbhash'),
type: SyncAssetV1TypeEnum.fromJson(json[r'type'])!,
@ -190,6 +197,7 @@ class SyncAssetV1 {
'id',
'isFavorite',
'localDateTime',
'originalFileName',
'ownerId',
'thumbhash',
'type',

View File

@ -13127,6 +13127,9 @@
"nullable": true,
"type": "string"
},
"originalFileName": {
"type": "string"
},
"ownerId": {
"type": "string"
},
@ -13161,6 +13164,7 @@
"id",
"isFavorite",
"localDateTime",
"originalFileName",
"ownerId",
"thumbhash",
"type",

View File

@ -341,6 +341,7 @@ export const columns = {
syncAsset: [
'id',
'ownerId',
'originalFileName',
'thumbhash',
'checksum',
'fileCreatedAt',

View File

@ -59,6 +59,7 @@ export class SyncPartnerDeleteV1 {
export class SyncAssetV1 {
id!: string;
ownerId!: string;
originalFileName!: string;
thumbhash!: string | null;
checksum!: string;
fileCreatedAt!: Date | null;

View File

@ -76,6 +76,7 @@ order by
select
"id",
"ownerId",
"originalFileName",
"thumbhash",
"checksum",
"fileCreatedAt",
@ -98,6 +99,7 @@ order by
select
"id",
"ownerId",
"originalFileName",
"thumbhash",
"checksum",
"fileCreatedAt",

View File

@ -23,12 +23,14 @@ describe.concurrent(SyncEntityType.AssetV1, () => {
it('should detect and sync the first asset', async () => {
const { auth, sut, getRepository, testSync } = await setup();
const originalFileName = 'firstAsset';
const checksum = '1115vHcVkZzNp3Q9G+FEA0nu6zUbGb4Tj4UOXkN0wRA=';
const thumbhash = '2225vHcVkZzNp3Q9G+FEA0nu6zUbGb4Tj4UOXkN0wRA=';
const date = new Date().toISOString();
const assetRepo = getRepository('asset');
const asset = mediumFactory.assetInsert({
originalFileName,
ownerId: auth.user.id,
checksum: Buffer.from(checksum, 'base64'),
thumbhash: Buffer.from(thumbhash, 'base64'),
@ -48,6 +50,7 @@ describe.concurrent(SyncEntityType.AssetV1, () => {
ack: expect.any(String),
data: {
id: asset.id,
originalFileName,
ownerId: asset.ownerId,
thumbhash,
checksum,

View File

@ -23,6 +23,7 @@ describe.concurrent(SyncRequestType.PartnerAssetsV1, () => {
it('should detect and sync the first partner asset', async () => {
const { auth, sut, getRepository, testSync } = await setup();
const originalFileName = 'firstPartnerAsset';
const checksum = '1115vHcVkZzNp3Q9G+FEA0nu6zUbGb4Tj4UOXkN0wRA=';
const thumbhash = '2225vHcVkZzNp3Q9G+FEA0nu6zUbGb4Tj4UOXkN0wRA=';
const date = new Date().toISOString();
@ -34,6 +35,7 @@ describe.concurrent(SyncRequestType.PartnerAssetsV1, () => {
const assetRepo = getRepository('asset');
const asset = mediumFactory.assetInsert({
ownerId: user2.id,
originalFileName,
checksum: Buffer.from(checksum, 'base64'),
thumbhash: Buffer.from(thumbhash, 'base64'),
fileCreatedAt: date,
@ -56,6 +58,7 @@ describe.concurrent(SyncRequestType.PartnerAssetsV1, () => {
data: {
id: asset.id,
ownerId: asset.ownerId,
originalFileName,
thumbhash,
checksum,
deletedAt: null,