From 1d15cfb5f3923518a95f1100b02eee338203503e Mon Sep 17 00:00:00 2001 From: Alex <alex.tran1502@gmail.com> Date: Fri, 26 Apr 2024 01:02:04 -0500 Subject: [PATCH] chore(server): remove unusuned endpoint/service/interface in asset-v1 (#9086) --- mobile/openapi/.openapi-generator/FILES | 6 - mobile/openapi/README.md | Bin 27130 -> 26660 bytes mobile/openapi/doc/AssetApi.md | Bin 51926 -> 46195 bytes .../doc/CuratedLocationsResponseDto.md | Bin 550 -> 0 bytes .../openapi/doc/CuratedObjectsResponseDto.md | Bin 550 -> 0 bytes mobile/openapi/lib/api.dart | Bin 9411 -> 9313 bytes mobile/openapi/lib/api/asset_api.dart | Bin 52517 -> 47965 bytes mobile/openapi/lib/api_client.dart | Bin 25592 -> 25384 bytes .../model/curated_locations_response_dto.dart | Bin 3963 -> 0 bytes .../model/curated_objects_response_dto.dart | Bin 3951 -> 0 bytes mobile/openapi/test/asset_api_test.dart | Bin 5183 -> 4769 bytes .../curated_locations_response_dto_test.dart | Bin 1003 -> 0 bytes .../curated_objects_response_dto_test.dart | Bin 1001 -> 0 bytes open-api/immich-openapi-specs.json | 159 ------------------ open-api/typescript-sdk/src/fetch-client.ts | 38 ----- server/src/controllers/asset-v1.controller.ts | 17 -- server/src/dtos/asset-v1-response.dto.ts | 16 -- server/src/dtos/asset-v1.dto.ts | 13 -- server/src/interfaces/asset-v1.interface.ts | 6 +- .../src/repositories/asset-v1.repository.ts | 53 +----- server/src/services/asset-v1.service.spec.ts | 3 - server/src/services/asset-v1.service.ts | 44 ----- 22 files changed, 2 insertions(+), 353 deletions(-) delete mode 100644 mobile/openapi/doc/CuratedLocationsResponseDto.md delete mode 100644 mobile/openapi/doc/CuratedObjectsResponseDto.md delete mode 100644 mobile/openapi/lib/model/curated_locations_response_dto.dart delete mode 100644 mobile/openapi/lib/model/curated_objects_response_dto.dart delete mode 100644 mobile/openapi/test/curated_locations_response_dto_test.dart delete mode 100644 mobile/openapi/test/curated_objects_response_dto_test.dart diff --git a/mobile/openapi/.openapi-generator/FILES b/mobile/openapi/.openapi-generator/FILES index 2fd4fba057..e7cbd570dc 100644 --- a/mobile/openapi/.openapi-generator/FILES +++ b/mobile/openapi/.openapi-generator/FILES @@ -60,8 +60,6 @@ doc/CreateLibraryDto.md doc/CreateProfileImageResponseDto.md doc/CreateTagDto.md doc/CreateUserDto.md -doc/CuratedLocationsResponseDto.md -doc/CuratedObjectsResponseDto.md doc/DeleteUserDto.md doc/DownloadApi.md doc/DownloadArchiveInfo.md @@ -297,8 +295,6 @@ lib/model/create_library_dto.dart lib/model/create_profile_image_response_dto.dart lib/model/create_tag_dto.dart lib/model/create_user_dto.dart -lib/model/curated_locations_response_dto.dart -lib/model/curated_objects_response_dto.dart lib/model/delete_user_dto.dart lib/model/download_archive_info.dart lib/model/download_info_dto.dart @@ -485,8 +481,6 @@ test/create_library_dto_test.dart test/create_profile_image_response_dto_test.dart test/create_tag_dto_test.dart test/create_user_dto_test.dart -test/curated_locations_response_dto_test.dart -test/curated_objects_response_dto_test.dart test/delete_user_dto_test.dart test/download_api_test.dart test/download_archive_info_test.dart diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 3059e3dbeffafe5aa01c04b6bcc261ade85b7f68..187d8e8fa9ce92f965805d85bc763c10b1113140 100644 GIT binary patch delta 23 fcmex$nQ_Sl#tqwqCaVZv*nCA~v*l)f|JPCgjLQo1 delta 279 zcmZ2-f$`U6#tqwqxKa~~k~2b5i*k!6Ckn}O6@&RDK>p;7!Xi8nt}cjQJlRo5X7W~{ zivrH2MTsS;DL(nhi6xo&c_57v{K*i(9H<~jw;)tZ7bXZYLYxn(-9ITSHMs<=nHQ=s zA1nmY3Nua@A_UgBxlMSpr4dv&-14B*;sT%>Qe8^&V>MFpllAq{RZKQ?7U4m*bn?ak PG=YavVw){}UrPZ12$N~S diff --git a/mobile/openapi/doc/AssetApi.md b/mobile/openapi/doc/AssetApi.md index 297a4cdba6acc41bbc75a567fe81146c74434f2a..826e91a69066ca11d8cc5d44dc27c3d1a3622578 100644 GIT binary patch delta 28 kcmcaMmHG1vrVS^VCaW^9+1$&LZnpWp<5_{tJc*|=0mPvV5&!@I delta 793 zcmezTg6Y~+<_#yAI8zggk~2b5i*hGlWRimLN<h4ijKV_t#b8-okU+6QjRIHn<cpSK zldmu><aaJDN-RlD@ySn4EXmBz18NrGPlkx)z{G$?XzD`+bz!0qbF{S5Q%j&`_$Oth zCYOLr;DIX62Z>Dnz$hXB*A5mcDc+pTTxezhcXP3p7MGoZPiAq6O>jw3W?s6T0?=H? z;^NejV1y!#%@dtuStj>Ys!vXE=iot>ncV0e!Hpy^d19o3R!Bx>u|jHIN<n^RUWr0V zermBoUVe!}UTSKJLSkN}LP26tVs0uhQ1mwY8*F9VeB1JzfH%}LumC}F8M;hRYH>k+ zUU8~RNj})Q=<*2XiXZ|BZmtH<$-x5XdPsEl<O7M)2IyuWyGu(eRs&sr^Szdtj2;Ll zLE;V5qfl{V<3O<jH4Z9^@T3r?9LS4&sOrh^pcbkL$nHV%9@ssbH#*E?+`Q83R3-o> C^(*WE diff --git a/mobile/openapi/doc/CuratedLocationsResponseDto.md b/mobile/openapi/doc/CuratedLocationsResponseDto.md deleted file mode 100644 index 627bcbf854c004295c3dac6cb3d82280cc404368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcma)3!D<3A5WVLs2KHbLWWBeiZP$aKve@24*pN(hsJjWtSg`ctn{0*JQfucjyqP!e z!Mp;T$6k9XJ7;lUJ{*E(v~y=Plk4LOqfZTMc0v>d%$>HtJA{D_UYi%aMbWmc)qw?d z-UWuyX?}YWpJanf7~N&+pwxu43``isQg;aN@O1RK)fi16pY0P`I!+9AR%v*Kl)8q6 zl!o{yWg<%X$btIp01{3+i?3v`iV=Bc|0Z4D)5Xhxk>0S;y!%~Stk?JHiNFpPIRV&H z<jv-$EGMgJRWGJxXAA4hp~IesOw_XrYIuJf!`F4y%>H?s!cf>-@2KZ*5}$@Y%*R5A E52Mki#{d8T diff --git a/mobile/openapi/doc/CuratedObjectsResponseDto.md b/mobile/openapi/doc/CuratedObjectsResponseDto.md deleted file mode 100644 index ee041a821521ee8fe67020c9919bfdb98e5e812f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcma)3!Ab)$5WVLs2KG=J$o8(M)$O5R>r%ay!p6<mM!T7iOa;Y{H(85Tv1l&g&Aj&p z-YbASI_+)QlfhkiwGW!n+}uB6$8m|#lZ#k02~iYqP1*o&5e71N-970IineWy4lHc% zDKLx<^YerCB->}g=ps`GrzWIjV2e>KbdT@`cP~DFHO4Mj&z4+53*y93M=uSJkWznP zA*I1*+hG+W^2|t?6jI)Dux>Megg;5A_x7ZchOAEc28{L<8_nC_8Dh1%Ofdoz%yR>< zvys>9v$C8lr&T?lmc1zqb^9J2>l}-EprD2V;uyZvRWtjiHr1if8Bf;nH;a#hKaP)u F5br_Ar=tJ> diff --git a/mobile/openapi/lib/api.dart b/mobile/openapi/lib/api.dart index 78f2e9ed5ae317b0b2b096d55da14aeb579b8c06..3e2f23024e8899ff0cec9cbf5623a5cc914b24f6 100644 GIT binary patch delta 12 TcmX@?`Oss72H)l`K1(qGB<cjV delta 50 zcmaFpaoBT%2A@E3X;ETHYD#=gesW?-W`5peMnNTBm|%WVR%-GjLFLUFe3oJW>uV9{ diff --git a/mobile/openapi/lib/api/asset_api.dart b/mobile/openapi/lib/api/asset_api.dart index 10f1c0c10e9a399eafc20916a1f7d7e39437dfbf..c6031f6bdaa6a607b32ed762bb7b8e3e7d9d1489 100644 GIT binary patch delta 19 bcmZ2Fi}~(1rVS?yHg}nc32a^#R9^)EUls`c delta 650 zcmccnjcMsD<_#wdxKa~~k~4HmQj2mYUog;~JVjYlrnoq@Bp56n0u(L|&n(ICC@CrM z%uCDHn7nYMFHbQ-Q}N{Y;)f^ikCvN!e!^KTx6+c*qEs87%;FN8;F6-uymUKzJB9Sr z5=S&MH74`RYfhFoV-?3?&t^ltdyJFyda5S3YxZtFZXhlokX%}nSdyBeo0FfMSdy8a z2X(KAtTRNy2P%%~U_o@PD6Y0gb~U<LL8-+B`FX{uE+zR;ub`^{c|`-i8{nQ1K-WAu z-&+k+uplyRvRyAXAI#bLNm;4MB{2U=Lk;l<i(>kg7e(9T#Ehe`__4;~Q>ZC8{Rx!^ a`x2kca6j^)IuGPSbRnq!Hs5oouL1zBLjXGf diff --git a/mobile/openapi/lib/api_client.dart b/mobile/openapi/lib/api_client.dart index ae3b9dadf1290afba8e8d2b31671db7a1bb4cdfc..5db7b8fbef52d3cd057d96a6535f599e10cc19ce 100644 GIT binary patch delta 14 WcmexyoN>i5#tlX~o0)XKnE?Pa*al1h delta 86 zcmZ2+jPb{D#tlX~{LZCCi6yBiKKaRsC7JnolP_v2@}UU{+UoE?mH8)Sr6y0lpsB<S QQ3K&WG}7H{r1Q-T0LLC7y#N3J diff --git a/mobile/openapi/lib/model/curated_locations_response_dto.dart b/mobile/openapi/lib/model/curated_locations_response_dto.dart deleted file mode 100644 index 0b54c4807fc408f141469c9de76eba2bfc41940d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3963 zcmbVPZExE)5dQ98aRGwbL0x(4ry-rZ22C=!OX4EU1`I|ZFcKZHlSP%JV|Z!)`|e1+ zu~y`)1?ou0yW{bm=kBP<WH6b)$)7j#H@}}<on4>YoSnk??BZ+;r*pWP-@xVkbawvt z0jiPa`-CYIz72kUJD^u_pG(D~rBu;UWc(P``C9WN;u&A@+>EPtu_~l8ofa(Hu&s`Y zwTTq}x)ut}bGE|Yf+_rKxYFoc>2C8_=Gw5_L?Xcr#Zqu(&2{HynaH`0GMV3_nn_t6 z{qj>3r%dU=0Jk$BmmmwCvqA*;|J`5^XH0AOuvX0Q<U+>G2;A|S>jMAqQzPMV05HK^ zTywKlxdsL~-@u~B<Q9YtI_3e|_9%|XH$asaFsaZ%EX;P?Ay4>&i1~@u+{}{a6}s0% zr-kBL{L4QvlajxuBg_ZDXQM=Z4-`iG-P?Y5VV1OI!h37Bu{!VN16K<1#Le!c%m@)o zzf=&0qxszz9wSaB<?0B+DLC9?mW?Po<7(yGH}?dhAH7$vY$~lkn_Aq&o(;Se?{uW% z3p#XXNu!3(o`$e%`0GiVG>~QUwv!Z*8@T5NQl`@nGU1p8dx*LqsSa}<bFG=$QXOGw zq===qY9oR!sEm)`wUc@$dTx1^?5>CoSrdJuzjKa~Nk+Pdk;QY^Qx6M@JUp}&;3E(o zdf|`D)mc(4AnlPV;UN;emD=#I3G{Yo1H5F#uPz>Rvc*m$;wc#UQOg_ybOpH-Im_S+ ziXem??Z>BgHltuQ7HUZG4sTJluHWwzyx1E}PuyuTOTO2pI-{OZZ!TIYRCeBCbNa?l zBXi2i_BDGJ5<F24_|bj`EKk4<0}aAxcwpI@Ygj6|D%~!u2wUV56^7JK7YNDi81i+7 zt$^x&Bed<DExs3uFR`WDX`t3IHVYk58;Ni@7!gM}M^c#(|DB+(>;7iLv4EEZaA8*H zV`L*6B=r`It&#(Hys#=k%(U5I$jEh4f}+fB59vo3wEIUqI))W1{-UhSmp9vjm%gVX zVk1)9k?rWf4FIz9ShUyN(;n{nnI$iDfz)hUi~V-U)V4*#!@WB;sx1$gV><qm{Vmf> z9I8oNGT}lXLOuDPLWUaW$WV_GF5i!KK;0|3VRsoeVpy_F^YK%~3C9SGZ=D(H6@B|G zZe7I0FY-?GqTp~!*y;;}zLMr_RhVt%9w~=oaa8UiH+ZqIs?B;uN=MkRkM{vpp*<rW zr_3H@u;KebXsfX8ofu4q3s{o4s%Tld+*cTQNR(Da(g{aZ0*|43vR-VjDPd~&<-ROZ zeRP6VMeUM>TJ7H5=dtSNZCo&#URW%Cp@Z$Y7Jyx}yg(mAeb<ffx{0@Hx;?vT?LmxE zwXHx7=uL249gMJYhx=b(Tc3e7X+gIKbWGpE8UDk!G}^4a<1fY0gFKqnC5RcoS8DP$ zVbWdhHo~MRqOzk4c@H*koCP{4M+r`9w4{#|a@@50%hpsU#`PBBlx#_>lSgBCS<$19 zHpBMs`XfAhA%$K-$8yZH8p>X_;Sqfn^gtC5oOME5q#M^Y-&Fs&W}+jK*E(?57J(*k zlk%D?^`{cjQsaG#ArIC_qdN|GMbNk{RS$!YpXXQf@l`e#dvCx_=Dt7wAlv$4H+{63 haf8*3)uBHnJt5A$@*U?{`Gh-{-%(bA_e1P#{{i2A3+Mm< diff --git a/mobile/openapi/lib/model/curated_objects_response_dto.dart b/mobile/openapi/lib/model/curated_objects_response_dto.dart deleted file mode 100644 index 40b6e1789b50e85acb47d4b3263c1fe7fcaf5187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3951 zcmbVPZExE)5dQ98aRq|L!Blzcry-rZ22C=!YvLiz1`I|ZFcKZHlSP-LVt8r(`|e2U zEtcY}0V0d!z29?p)MPT6OyK0t>-n4C&MwccPOi^R;e7V#EP&HFT+XlIVtzV1|N9k^ z5#{@oDHFX7e|kHjrMN4k;_*_dcqwvz3}sPjp2j@qD_)qOT8q_MD$~os@(tVScwL%U z@vo&&$X>7&KG#g)ui;9gaHad%6Ip1(3KNSI6^f<c%ChTTWw|K0j&oVuA(_co5&!&S zoMcSt(FoNUkV}wjUa++Y@&Daul;lin_)sclcsjrR!V{yfxL%`LerhB<i~uGWi7ReO zRcK&P@C_^m8E!yWgA*Pi=OEdb<N{O?0h0+Gru<$c{6uSRW@#`;(0?X+Ii&TdPnP0Z z{LBAfCZp5GBa8*WXQM=M2OUFp4`yk5PjpsJVf(yMWOv`od#)5_6V=^HnNvP6_)<X> zja>pjnvAO>h^FAOp0IpO5ell4Z{OS-i05+m`n8RrmDUX|>gqZPJ+!m5A;b3$g|KJ% z?Cd({iOaurPMbgwMYGxoizp1-aRV9C*$0_&41{&0E=a1wf+t*SrnXc^SQ;7TQ(Lle zCw*Zh<p_RgAJ5X=6VbEhJlUmf>~GF?Jn?uk(!GprP7epGV$rcYI_N9|pRrk59bh3K zK%xVLz7KeG;LHtL;f)R&Q*REfi5G1Bi?axYZm}DQWC})p)UrSmU1=^w!E*S5TM)qx z^~2*k8%(ei3w78r_3#FHc1yaKWtKjrrt+fZP|FrA5~{Y&p>w#A;nq)xng}$6&7LDx zw!>L}XycLk!S{7OU_}aUBxn#u!#&GOu3@R<$_riCEo_!cBsiqDy1=B|1W=SYwgjsG zjnKA-wot!Te2I<S&IDB^*fexZ?Igw#VMG$+G|6O2Rp2&;`|q#T7@Kep0B2;CeY9(A zO{5NkmR0)z9b8zFFk#y4AY|-1D&@*Yb`bVsG}!%hP;?9{w*HGkH(y?F*W9a^jtP{A z@F$o%dga<YNpf;#=?g_52HV_XKOaJ}&EY_|SDVLbo3laTUhampr5mG64nNwb4>Vz@ zhOkG%CxJN{%)k_KJU>T#b|B#b{b0w`ost`Nn`1MECCfDr9xF^ZM4)wLZm3rbYgybl zYYAN>o4`ee;S{lT7YcnT&Dm;gwv})M9FE4Z*C97}y|ARsc?C%a*Jv2?A=RJt4_)zb zqu4cAe-+vKYs)6|l4BuDQ&$l!P8anm`kfqjE+fgmaTUB{sNSp;+hcr!+C6zVf>aW{ zX{u~?fkLWw*B+Kv_3?H_(2{2pVlx-HgbkHGc20kJK8E_98{<_IZ`5>ic9Xi3T-;UL zD!n1C1lN^Ylqcuf|46fy7+Qu_()OeqL$`2@|L`r%G0X38OIAFSb7ZZ{4*ka^HFg^= zSNX6JCc`Z%HoA%r=H-o}M|M9va5^I&eVmZkromsdCOIMPnc|xgC(-ocCxDlgIm&1w zYoE^V!Pg6+^AZ^P!P06Wdr^iCcJn`&q>$2B2eSpXpsw<!-h&!}4nUn|fjV2jnZR|% zYmC&NNC-!bmnwz`C=oul9Pm1zQ7zRBgO8u*m-NZy+ljp+VDEBYoWB!qeT|zw*tk5I fpKf~kO`M2+jg!v5`RV0XsM~)(*>k)PVmJE_TK@#> diff --git a/mobile/openapi/test/asset_api_test.dart b/mobile/openapi/test/asset_api_test.dart index 0c1729e95f7f50cc33336f0bba9d9781ba9ca9bf..e64d3acf5e2408a6a61534252367ba84d5c009aa 100644 GIT binary patch delta 17 Ycmdn5u~2n`2>a$q>{*PPWw?~N062pMHUIzs delta 219 zcmZ3ex?f|12>awWtU?0C#i=F1sfk6&86l}fxy2fj1v#Yz9MME4Z{#<e{7-;wvm|>e zqmgrIQDRAIicfxWVo7FxUU5)raRHD@bt%cWvr|Y<EkRcRF%(@CWT=UaPiAq64OGfM aDJwO(1gCjWX|QR0s9Hc~ZLZ+Z<N^Ry7Ehf3 diff --git a/mobile/openapi/test/curated_locations_response_dto_test.dart b/mobile/openapi/test/curated_locations_response_dto_test.dart deleted file mode 100644 index 7529aaf7c89d7dce2f994ad12e86099d2002ba86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmbVJOHbQC5Wf3Y45tJs#gtP8LL$NeMWPtd^uTFZ*%N1kv%8%gQ>BRi&a6{ZDk6e% z*vClUb2rbkJcsemS^4F1ay_{n&n5+2Os^&*C`!04XYjo&rWbd63QNed+OnJ;9eh2? z(nyW-jAriH%&Em==v)`EHrV14os3>*S_aRukzw24b`?$N#4!Hqh?VZ_Qukn4PeG0< z&T%un@-B*XVyIR_niFzQj~mTeau`kPU868rSZBT+nrdM=X4yI;41%p5Y=g%>ptFH; zT?eW4;N%@dFiM`bS3ojNa|C@7IPcgB)>po=LYngyW6%Q&@!6xN8kUyaa37vB042`J z*%qkpQz4vw#2@aTWXfvTcVRe4mLH)9Blv668~qR_*FZ(GQVr-6tBCI}APa=R+MZ<v z_X%{r=G(Y(RUbByH1Mn}%3k1ko#w50jgM5}I7XCdz18JE^zL?_cAD0^n9%kjw39Gn Xq(69LWwG_8{y{(2Kn45XdCpz{1S>lg diff --git a/mobile/openapi/test/curated_objects_response_dto_test.dart b/mobile/openapi/test/curated_objects_response_dto_test.dart deleted file mode 100644 index f71723ab274dd6f7f99bd3b73a4c7f7bcce7fdff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmbV}K~Ebo5QXpiE2gIeDP>zu6$pul4JcA!D+q_4jM<%Rrfh68o~24F{yVcyQH2N! z%3-}8>Am+o+j*YlIgD>+<>&Ls<>YESn-p+1{XQ8%QNm?8gNw45p8fo!vR-*oTbAR4 z{jUdEKT_j7qnUd)b87JrI@d+44Ys&MC!?2{mcg@ZblCQ{T}2Z*F^mr#vD%$o>KZKT zUy!4QbKGpNyo+L;7^)RWb3#t`xDnQp!)RLX8kNbyI`i#|sTP)FmaRL&AlT~OHhAa* zIvXh0Z@)kF;OLD+FiPGpFM=N0&k^)W;Iv~aSeJLdu#$L%F=$yV#AlD5YFJuw!#(($ z0jO<G&bC15G!??}`|jc1QKp`TeHVs<9{0X>FoJ)G1i2O_*FcSrRN**AlxeL|kV<Qo zPaBX0LSVfBmKEH-Qs1r<ZCtr3Rqx$ee^wS{N_twidyD%pX<F|Bq3s8uoq~OOzOA>k bmhIA<G14FWVP&xu@?ZKfkOrprc*>puQ$acF diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index 5905f2ccfc..d1e0b6aace 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -1149,76 +1149,6 @@ ] } }, - "/asset/curated-locations": { - "get": { - "operationId": "getCuratedLocations", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/CuratedLocationsResponseDto" - }, - "type": "array" - } - } - }, - "description": "" - } - }, - "security": [ - { - "bearer": [] - }, - { - "cookie": [] - }, - { - "api_key": [] - } - ], - "tags": [ - "Asset" - ] - } - }, - "/asset/curated-objects": { - "get": { - "operationId": "getCuratedObjects", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/CuratedObjectsResponseDto" - }, - "type": "array" - } - } - }, - "description": "" - } - }, - "security": [ - { - "bearer": [] - }, - { - "cookie": [] - }, - { - "api_key": [] - } - ], - "tags": [ - "Asset" - ] - } - }, "/asset/device/{deviceId}": { "get": { "description": "Get all asset of a device that are in the database, ID only.", @@ -1590,41 +1520,6 @@ ] } }, - "/asset/search-terms": { - "get": { - "operationId": "getAssetSearchTerms", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "type": "string" - }, - "type": "array" - } - } - }, - "description": "" - } - }, - "security": [ - { - "bearer": [] - }, - { - "cookie": [] - }, - { - "api_key": [] - } - ], - "tags": [ - "Asset" - ] - } - }, "/asset/stack/parent": { "put": { "operationId": "updateStackParent", @@ -8423,60 +8318,6 @@ ], "type": "object" }, - "CuratedLocationsResponseDto": { - "properties": { - "city": { - "type": "string" - }, - "deviceAssetId": { - "type": "string" - }, - "deviceId": { - "type": "string" - }, - "id": { - "type": "string" - }, - "resizePath": { - "type": "string" - } - }, - "required": [ - "city", - "deviceAssetId", - "deviceId", - "id", - "resizePath" - ], - "type": "object" - }, - "CuratedObjectsResponseDto": { - "properties": { - "deviceAssetId": { - "type": "string" - }, - "deviceId": { - "type": "string" - }, - "id": { - "type": "string" - }, - "object": { - "type": "string" - }, - "resizePath": { - "type": "string" - } - }, - "required": [ - "deviceAssetId", - "deviceId", - "id", - "object", - "resizePath" - ], - "type": "object" - }, "DeleteUserDto": { "properties": { "force": { diff --git a/open-api/typescript-sdk/src/fetch-client.ts b/open-api/typescript-sdk/src/fetch-client.ts index a517cb6602..2536afe598 100644 --- a/open-api/typescript-sdk/src/fetch-client.ts +++ b/open-api/typescript-sdk/src/fetch-client.ts @@ -252,20 +252,6 @@ export type AssetBulkUploadCheckResult = { export type AssetBulkUploadCheckResponseDto = { results: AssetBulkUploadCheckResult[]; }; -export type CuratedLocationsResponseDto = { - city: string; - deviceAssetId: string; - deviceId: string; - id: string; - resizePath: string; -}; -export type CuratedObjectsResponseDto = { - deviceAssetId: string; - deviceId: string; - id: string; - "object": string; - resizePath: string; -}; export type CheckExistingAssetsDto = { deviceAssetIds: string[]; deviceId: string; @@ -1363,22 +1349,6 @@ export function checkBulkUpload({ assetBulkUploadCheckDto }: { body: assetBulkUploadCheckDto }))); } -export function getCuratedLocations(opts?: Oazapfts.RequestOpts) { - return oazapfts.ok(oazapfts.fetchJson<{ - status: 200; - data: CuratedLocationsResponseDto[]; - }>("/asset/curated-locations", { - ...opts - })); -} -export function getCuratedObjects(opts?: Oazapfts.RequestOpts) { - return oazapfts.ok(oazapfts.fetchJson<{ - status: 200; - data: CuratedObjectsResponseDto[]; - }>("/asset/curated-objects", { - ...opts - })); -} /** * Get all asset of a device that are in the database, ID only. */ @@ -1479,14 +1449,6 @@ export function getRandom({ count }: { ...opts })); } -export function getAssetSearchTerms(opts?: Oazapfts.RequestOpts) { - return oazapfts.ok(oazapfts.fetchJson<{ - status: 200; - data: string[]; - }>("/asset/search-terms", { - ...opts - })); -} export function updateStackParent({ updateStackParentDto }: { updateStackParentDto: UpdateStackParentDto; }, opts?: Oazapfts.RequestOpts) { diff --git a/server/src/controllers/asset-v1.controller.ts b/server/src/controllers/asset-v1.controller.ts index 2ba9aa7a03..e83df8d0d1 100644 --- a/server/src/controllers/asset-v1.controller.ts +++ b/server/src/controllers/asset-v1.controller.ts @@ -20,8 +20,6 @@ import { AssetBulkUploadCheckResponseDto, AssetFileUploadResponseDto, CheckExistingAssetsResponseDto, - CuratedLocationsResponseDto, - CuratedObjectsResponseDto, } from 'src/dtos/asset-v1-response.dto'; import { AssetBulkUploadCheckDto, @@ -111,21 +109,6 @@ export class AssetControllerV1 { await sendFile(res, next, () => this.service.serveThumbnail(auth, id, dto)); } - @Get('/curated-objects') - getCuratedObjects(@Auth() auth: AuthDto): Promise<CuratedObjectsResponseDto[]> { - return this.service.getCuratedObject(auth); - } - - @Get('/curated-locations') - getCuratedLocations(@Auth() auth: AuthDto): Promise<CuratedLocationsResponseDto[]> { - return this.service.getCuratedLocation(auth); - } - - @Get('/search-terms') - getAssetSearchTerms(@Auth() auth: AuthDto): Promise<string[]> { - return this.service.getAssetSearchTerm(auth); - } - /** * Get all AssetEntity belong to the user */ diff --git a/server/src/dtos/asset-v1-response.dto.ts b/server/src/dtos/asset-v1-response.dto.ts index 4b1e97b478..687b336428 100644 --- a/server/src/dtos/asset-v1-response.dto.ts +++ b/server/src/dtos/asset-v1-response.dto.ts @@ -27,19 +27,3 @@ export class AssetFileUploadResponseDto { export class CheckExistingAssetsResponseDto { existingIds!: string[]; } - -export class CuratedLocationsResponseDto { - id!: string; - city!: string; - resizePath!: string; - deviceAssetId!: string; - deviceId!: string; -} - -export class CuratedObjectsResponseDto { - id!: string; - object!: string; - resizePath!: string; - deviceAssetId!: string; - deviceId!: string; -} diff --git a/server/src/dtos/asset-v1.dto.ts b/server/src/dtos/asset-v1.dto.ts index 50ff3d18b1..5cac6fbe65 100644 --- a/server/src/dtos/asset-v1.dto.ts +++ b/server/src/dtos/asset-v1.dto.ts @@ -130,19 +130,6 @@ export class GetAssetThumbnailDto { format: GetAssetThumbnailFormatEnum = GetAssetThumbnailFormatEnum.WEBP; } -export class SearchPropertiesDto { - tags?: string[]; - objects?: string[]; - assetType?: string; - orientation?: string; - lensModel?: string; - make?: string; - model?: string; - city?: string; - state?: string; - country?: string; -} - export class ServeFileDto { @ValidateBoolean({ optional: true }) @ApiProperty({ title: 'Is serve thumbnail (resize) file' }) diff --git a/server/src/interfaces/asset-v1.interface.ts b/server/src/interfaces/asset-v1.interface.ts index 8348bfaeea..799a303ba6 100644 --- a/server/src/interfaces/asset-v1.interface.ts +++ b/server/src/interfaces/asset-v1.interface.ts @@ -1,5 +1,4 @@ -import { CuratedLocationsResponseDto, CuratedObjectsResponseDto } from 'src/dtos/asset-v1-response.dto'; -import { AssetSearchDto, CheckExistingAssetsDto, SearchPropertiesDto } from 'src/dtos/asset-v1.dto'; +import { AssetSearchDto, CheckExistingAssetsDto } from 'src/dtos/asset-v1.dto'; import { AssetEntity } from 'src/entities/asset.entity'; export interface AssetCheck { @@ -13,10 +12,7 @@ export interface AssetOwnerCheck extends AssetCheck { export interface IAssetRepositoryV1 { get(id: string): Promise<AssetEntity | null>; - getLocationsByUserId(userId: string): Promise<CuratedLocationsResponseDto[]>; - getDetectedObjectsByUserId(userId: string): Promise<CuratedObjectsResponseDto[]>; getAllByUserId(userId: string, dto: AssetSearchDto): Promise<AssetEntity[]>; - getSearchPropertiesByUserId(userId: string): Promise<SearchPropertiesDto[]>; getAssetsByChecksums(userId: string, checksums: Buffer[]): Promise<AssetCheck[]>; getExistingAssets(userId: string, checkDuplicateAssetDto: CheckExistingAssetsDto): Promise<string[]>; getByOriginalPath(originalPath: string): Promise<AssetOwnerCheck | null>; diff --git a/server/src/repositories/asset-v1.repository.ts b/server/src/repositories/asset-v1.repository.ts index 229e700fd5..4e346d5fdf 100644 --- a/server/src/repositories/asset-v1.repository.ts +++ b/server/src/repositories/asset-v1.repository.ts @@ -1,7 +1,6 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { CuratedLocationsResponseDto, CuratedObjectsResponseDto } from 'src/dtos/asset-v1-response.dto'; -import { AssetSearchDto, CheckExistingAssetsDto, SearchPropertiesDto } from 'src/dtos/asset-v1.dto'; +import { AssetSearchDto, CheckExistingAssetsDto } from 'src/dtos/asset-v1.dto'; import { AssetEntity } from 'src/entities/asset.entity'; import { AssetCheck, AssetOwnerCheck, IAssetRepositoryV1 } from 'src/interfaces/asset-v1.interface'; import { OptionalBetween } from 'src/utils/database'; @@ -42,56 +41,6 @@ export class AssetRepositoryV1 implements IAssetRepositoryV1 { }); } - getSearchPropertiesByUserId(userId: string): Promise<SearchPropertiesDto[]> { - return this.assetRepository - .createQueryBuilder('asset') - .where('asset.ownerId = :userId', { userId: userId }) - .andWhere('asset.isVisible = true') - .leftJoin('asset.exifInfo', 'ei') - .leftJoin('asset.smartInfo', 'si') - .select('si.tags', 'tags') - .addSelect('si.objects', 'objects') - .addSelect('asset.type', 'assetType') - .addSelect('ei.orientation', 'orientation') - .addSelect('ei."lensModel"', 'lensModel') - .addSelect('ei.make', 'make') - .addSelect('ei.model', 'model') - .addSelect('ei.city', 'city') - .addSelect('ei.state', 'state') - .addSelect('ei.country', 'country') - .distinctOn(['si.tags']) - .getRawMany(); - } - - getDetectedObjectsByUserId(userId: string): Promise<CuratedObjectsResponseDto[]> { - return this.assetRepository.query( - ` - SELECT DISTINCT ON (unnest(si.objects)) a.id, unnest(si.objects) as "object", a."previewPath" AS "resizePath", a."deviceAssetId", a."deviceId" - FROM assets a - LEFT JOIN smart_info si ON a.id = si."assetId" - WHERE a."ownerId" = $1 - AND a."isVisible" = true - AND si.objects IS NOT NULL - `, - [userId], - ); - } - - getLocationsByUserId(userId: string): Promise<CuratedLocationsResponseDto[]> { - return this.assetRepository.query( - ` - SELECT DISTINCT ON (e.city) a.id, e.city, a."previewPath" AS "resizePath", a."deviceAssetId", a."deviceId" - FROM assets a - LEFT JOIN exif e ON a.id = e."assetId" - WHERE a."ownerId" = $1 - AND a."isVisible" = true - AND e.city IS NOT NULL - AND a.type = 'IMAGE'; - `, - [userId], - ); - } - get(id: string): Promise<AssetEntity | null> { return this.assetRepository.findOne({ where: { id }, diff --git a/server/src/services/asset-v1.service.spec.ts b/server/src/services/asset-v1.service.spec.ts index bc088cb30b..40211ee40a 100644 --- a/server/src/services/asset-v1.service.spec.ts +++ b/server/src/services/asset-v1.service.spec.ts @@ -76,9 +76,6 @@ describe('AssetService', () => { assetRepositoryMockV1 = { get: vitest.fn(), getAllByUserId: vitest.fn(), - getDetectedObjectsByUserId: vitest.fn(), - getLocationsByUserId: vitest.fn(), - getSearchPropertiesByUserId: vitest.fn(), getAssetsByChecksums: vitest.fn(), getExistingAssets: vitest.fn(), getByOriginalPath: vitest.fn(), diff --git a/server/src/services/asset-v1.service.ts b/server/src/services/asset-v1.service.ts index 61fe5bd80b..e7affe1073 100644 --- a/server/src/services/asset-v1.service.ts +++ b/server/src/services/asset-v1.service.ts @@ -13,8 +13,6 @@ import { AssetRejectReason, AssetUploadAction, CheckExistingAssetsResponseDto, - CuratedLocationsResponseDto, - CuratedObjectsResponseDto, } from 'src/dtos/asset-v1-response.dto'; import { AssetBulkUploadCheckDto, @@ -156,48 +154,6 @@ export class AssetServiceV1 { }); } - async getAssetSearchTerm(auth: AuthDto): Promise<string[]> { - const possibleSearchTerm = new Set<string>(); - - const rows = await this.assetRepositoryV1.getSearchPropertiesByUserId(auth.user.id); - - for (const row of rows) { - // tags - row.tags?.map((tag: string) => possibleSearchTerm.add(tag?.toLowerCase())); - - // objects - row.objects?.map((object: string) => possibleSearchTerm.add(object?.toLowerCase())); - - // asset's tyoe - possibleSearchTerm.add(row.assetType?.toLowerCase() || ''); - - // image orientation - possibleSearchTerm.add(row.orientation?.toLowerCase() || ''); - - // Lens model - possibleSearchTerm.add(row.lensModel?.toLowerCase() || ''); - - // Make and model - possibleSearchTerm.add(row.make?.toLowerCase() || ''); - possibleSearchTerm.add(row.model?.toLowerCase() || ''); - - // Location - possibleSearchTerm.add(row.city?.toLowerCase() || ''); - possibleSearchTerm.add(row.state?.toLowerCase() || ''); - possibleSearchTerm.add(row.country?.toLowerCase() || ''); - } - - return [...possibleSearchTerm].filter((x) => x != null && x != ''); - } - - async getCuratedLocation(auth: AuthDto): Promise<CuratedLocationsResponseDto[]> { - return this.assetRepositoryV1.getLocationsByUserId(auth.user.id); - } - - async getCuratedObject(auth: AuthDto): Promise<CuratedObjectsResponseDto[]> { - return this.assetRepositoryV1.getDetectedObjectsByUserId(auth.user.id); - } - async checkExistingAssets( auth: AuthDto, checkExistingAssetsDto: CheckExistingAssetsDto,