From 25e2d374902d5280e738346687201d4486109fee Mon Sep 17 00:00:00 2001 From: Daimolean <92239625+wuzihao051119@users.noreply.github.com> Date: Fri, 25 Jul 2025 23:04:28 +0800 Subject: [PATCH] fix(server): use UserMetadataKey enum instead of string (#20209) * fix(server): use UserMetadataKey enum instead of string * fix: mobile --- .../repositories/sync_stream.repository.dart | 12 +++++------ mobile/openapi/README.md | Bin 38873 -> 38919 bytes mobile/openapi/lib/api.dart | Bin 14027 -> 14064 bytes mobile/openapi/lib/api_client.dart | Bin 35089 -> 35186 bytes mobile/openapi/lib/api_helper.dart | Bin 6758 -> 6866 bytes .../model/sync_user_metadata_delete_v1.dart | Bin 3171 -> 3182 bytes .../lib/model/sync_user_metadata_v1.dart | Bin 3268 -> 3279 bytes .../openapi/lib/model/user_metadata_key.dart | Bin 0 -> 2844 bytes open-api/immich-openapi-specs.json | 20 ++++++++++++++++-- server/src/dtos/sync.dto.ts | 6 ++++-- .../tables/user-metadata-audit.table.ts | 3 ++- 11 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 mobile/openapi/lib/model/user_metadata_key.dart diff --git a/mobile/lib/infrastructure/repositories/sync_stream.repository.dart b/mobile/lib/infrastructure/repositories/sync_stream.repository.dart index 067f84017..54bc01cfa 100644 --- a/mobile/lib/infrastructure/repositories/sync_stream.repository.dart +++ b/mobile/lib/infrastructure/repositories/sync_stream.repository.dart @@ -20,8 +20,8 @@ import 'package:immich_mobile/infrastructure/entities/user.entity.drift.dart'; import 'package:immich_mobile/infrastructure/entities/user_metadata.entity.drift.dart'; import 'package:immich_mobile/infrastructure/repositories/db.repository.dart'; import 'package:logging/logging.dart'; -import 'package:openapi/api.dart' as api show AssetVisibility, AlbumUserRole; -import 'package:openapi/api.dart' hide AssetVisibility, AlbumUserRole; +import 'package:openapi/api.dart' as api show AssetVisibility, AlbumUserRole, UserMetadataKey; +import 'package:openapi/api.dart' hide AssetVisibility, AlbumUserRole, UserMetadataKey; class SyncStreamRepository extends DriftDatabaseRepository { final Logger _logger = Logger('DriftSyncStreamRepository'); @@ -647,11 +647,11 @@ extension on api.AssetVisibility { }; } -extension on String { +extension on api.UserMetadataKey { UserMetadataKey toUserMetadataKey() => switch (this) { - "onboarding" => UserMetadataKey.onboarding, - "preferences" => UserMetadataKey.preferences, - "license" => UserMetadataKey.license, + api.UserMetadataKey.onboarding => UserMetadataKey.onboarding, + api.UserMetadataKey.preferences => UserMetadataKey.preferences, + api.UserMetadataKey.license => UserMetadataKey.license, _ => throw Exception('Unknown UserMetadataKey value: $this'), }; } diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 62c48bf2924ad98fb95aa06ce0150be3987621ce..3181b03a47cfeb926cd116ee97dcc099e1802176 100644 GIT binary patch delta 52 zcmcb)o~eBU(}q)%6@61n5>paO61`I^V>MFpllApOi&Kk`L?<&&k=T57G7Ad;Jm?gm delta 18 acmZqQz;tsx(}q)%C)-Tn-po9Og#`dp8wZg9 diff --git a/mobile/openapi/lib/api.dart b/mobile/openapi/lib/api.dart index 8b8acc0042e11d9a358caf64e6a6710f75281e91..8c1fa1a80ac07287d39833a89d496d625a6795b2 100644 GIT binary patch delta 33 pcmX?|`yqEjyAe-rYDr>BVo73rc53D1g$AONw-^a*o@`{n0s#Ni4XOYD delta 16 Ycmey6dpdVRyV2ykMm(E$7+J6Y082Rsh5!Hn diff --git a/mobile/openapi/lib/api_client.dart b/mobile/openapi/lib/api_client.dart index d9cae66dd32d1d1655bed030592a608f6f580365..bd306cb216fe69369611f6c596769d2db9856682 100644 GIT binary patch delta 46 rcmbO@iRsfMrVUM1+`g$Li7AOCiQcJ|lN&1}Q1}nj^*7g5P38jtyG0Va delta 18 acmew~iD}{_rVUM1lfA3CH@~ZD;R66t^ayDH diff --git a/mobile/openapi/lib/api_helper.dart b/mobile/openapi/lib/api_helper.dart index 1618f4a670a9a3f210baafa95dad6fe580fcb66e..098d32f4f45045cee2aaf1eb593935e3a7a81c01 100644 GIT binary patch delta 58 zcmaE6a>;aquCS(WYDr>BVo9QRYNe(^HJ1Vq6s4Aw7Ud~~7N-^=$xhzDX1`fe*p?jt DW}Xx` delta 12 Tcmca)`pjg5uJGoW!j|j+B)tT& diff --git a/mobile/openapi/lib/model/sync_user_metadata_delete_v1.dart b/mobile/openapi/lib/model/sync_user_metadata_delete_v1.dart index e9dd7332956802e64d86e368a340b81887897aa4..f39acc617b3b291b1c9e3f405b03971c9239a3de 100644 GIT binary patch delta 71 zcmaDX@lImHB}V?x;?yGF)RM%M#F9ks)XL2_7_Tv_q6zAy73Jr873b$^WC4ljBK7Rl NO7+;y7g;B<0RR&8954U? delta 33 pcmaDS@mONRB}TU3lA_GK^vw?$uQ5;lz$(v@om#2B`3~zOHUReo4YvRQ diff --git a/mobile/openapi/lib/model/sync_user_metadata_v1.dart b/mobile/openapi/lib/model/sync_user_metadata_v1.dart index 0b060dc17c5467b7462f5e9a712f70bcecabe938..cf39b6d960c97b0edc1f7ac6af44897329f6cb9c 100644 GIT binary patch delta 71 zcmX>id0ukEO-BCE;?yGF)RM%M#F9ks)XL5G8P!=-(FFCvc|>xxzW|6Gt5 zOMb|O_0wOHpWhDnC^ylj*MH^ubvt0ywEtsyuQMezx>OmxAu+!dI(_?7nr(%3 zg8{koUqM;L)M|gkI#ri$C!IUk3nVD!^UzE`>)Bpm7hVs~zm6 z--6#Fl-4{^WH~IKgsO0rkX{J6YcWZOek)xP#IDG3w7(!5mCn(sgVY-cw;UwPMprxB ztC3yqtcw3oKcu^-456AHMyb2N4<~!zQP*}4I zjmQr)5LEhz4Q^RSc5x_iVTE=yh&!~yt0c$FD-YB0x+c5qaJgF6se1ha8&k zc(Uj#s~atEIICe(s7YJ0;Qx8>%!E0HwoNolRE)?j#6%u4p@BfieOm!N%Rns|^0=SD z61=I0c@)eFO%xNGzJdlXOjfWK*%y{RGm-RDTL(*_%Z13iv4`)%j-i>hanEMcey;1d zAnJ>w+DnYD3D;Z|3pVTw1aRts-1s4qYRd*UVKyA`^|Gl{0L5y_!YeM8=%&j2O6`lE za7P^>E;0Li!qAEl?QKO1fSSOh-*1-stBr>>LhMrxuF8l%T|q_;Ob3h)($@i+Y&9Yb z^8|i3dn6hk@fdYnhk5+A@7nfvB8a{jg^!vRc3k0@&#g5!Cb^|?(l1NF3#t 'clock_timestamp()', indexName: 'IDX_user_metadata_audit_deleted_at' }) deletedAt!: Generated;