From e1ef96c55016033d8ca815d085ab16def2caf093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kang=20Choi=20/=20=EC=B5=9C=20=EA=B0=95?= <109474668+y2hscmtk@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:16:14 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[feat]=20=ED=83=9C=EA=B7=B8?= =?UTF-8?q?=EB=A1=9C=20=EB=82=B4=EA=B0=80=20=EC=8A=A4=ED=81=AC=EB=9E=A9?= =?UTF-8?q?=ED=95=9C=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EB=AF=B8=EB=A6=AC?= =?UTF-8?q?=EB=B3=B4=EA=B8=B0=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../8.8/executionHistory/executionHistory.bin | Bin 1873570 -> 1873570 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.8/fileHashes/fileHashes.bin | Bin 44047 -> 44047 bytes .gradle/8.8/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.8/fileHashes/resourceHashesCache.bin | Bin 32437 -> 32641 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../Article$ArticleBuilder.class.uniqueId7 | Bin 3151 -> 0 bytes .../stash-dir/Article.class.uniqueId12 | Bin 3901 -> 0 bytes ...eId1 => ArticleDataLoader.class.uniqueId2} | Bin ...Id10 => ArticleRepository.class.uniqueId3} | Bin ...d11 => ArticleServiceImpl.class.uniqueId4} | Bin ...ticleTag$ArticleTagBuilder.class.uniqueId4 | Bin 2365 -> 0 bytes .../stash-dir/ArticleTag.class.uniqueId13 | Bin 2038 -> 0 bytes ...8 => ArticleTagRepository.class.uniqueId1} | Bin 2586 -> 2808 bytes .../Scrap$ScrapBuilder.class.uniqueId3 | Bin 2285 -> 0 bytes .../stash-dir/Scrap.class.uniqueId2 | Bin 1994 -> 0 bytes .../stash-dir/ScrapController.class.uniqueId0 | Bin 2783 -> 3506 bytes .../stash-dir/ScrapRepository.class.uniqueId9 | Bin 1539 -> 0 bytes .../stash-dir/ScrapService.class.uniqueId6 | Bin 10453 -> 15036 bytes .../compileJava/previous-compilation-data.bin | Bin 93299 -> 93307 bytes .../article/repository/ArticleRepository.java | 3 +++ .../repository/ArticleTagRepository.java | 8 ++++---- .../scrap/controller/ScrapController.java | 11 +++++++++++ .../domain/scrap/service/ScrapService.java | 16 ++++++---------- 24 files changed, 24 insertions(+), 14 deletions(-) delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Article$ArticleBuilder.class.uniqueId7 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Article.class.uniqueId12 rename build/tmp/compileJava/compileTransaction/stash-dir/{ArticleDataLoader.class.uniqueId1 => ArticleDataLoader.class.uniqueId2} (100%) rename build/tmp/compileJava/compileTransaction/stash-dir/{ArticleRepository.class.uniqueId10 => ArticleRepository.class.uniqueId3} (100%) rename build/tmp/compileJava/compileTransaction/stash-dir/{ArticleServiceImpl.class.uniqueId11 => ArticleServiceImpl.class.uniqueId4} (100%) delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag$ArticleTagBuilder.class.uniqueId4 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag.class.uniqueId13 rename build/tmp/compileJava/compileTransaction/stash-dir/{ArticleTagRepository.class.uniqueId8 => ArticleTagRepository.class.uniqueId1} (80%) delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Scrap$ScrapBuilder.class.uniqueId3 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Scrap.class.uniqueId2 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ScrapRepository.class.uniqueId9 diff --git a/.gradle/8.8/executionHistory/executionHistory.bin b/.gradle/8.8/executionHistory/executionHistory.bin index 07118a8172df6a23b7e366490741f7ad3cc5e870..e2f93b6923ecb1b9a7cd371c49ec1a59fb98700d 100644 GIT binary patch delta 714 zcmZ3qwrJ7XqJ|d67N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw z7O@ub7Ks+g7O5@L(Od1(Of%Cm&2kenO_QpOGmT0UtISd}vrLUMas|AeBs9Na-etK% zk40qBp}Py-GhqmASLEhLymq^x#;)h=392eubkef#dcc2^R2JP z(VEp~^L9k7|5j~RJN;rbx8(E-k~})wA53KTXWXu9BJ)pNV9}~&wrwIF@u!0PPCpW0 zc{=^#Tt3_B2JS4;K($Q#+Yg9~*D+2{@RK|UUMjiF%WBCzZ%k?9M5a;i^XSti3RkiS62 z=6lh+qj7EC8F9)-HKrTxV^^I1v`i+B;~7}>6uIdWEjVSSrjEsQo z|CySvUEFzp6cmImwB|^f{*i^7{-6Dp;l9wis;ACTV5{ zfr%$AT}tj9m%H+UBmUm$_-PC+DJA)g+omgei%U#@;U%uW-LzSTgUK$8p-b>id{a65 z(RG?S+Pq&5LX5}<8nKx%;WPg|Tk|J}GXH$&|NjLj)V!_v!<27zTQ_a|_Lfy3AZ>af z6PMohm8~*0ECTFRhNjn9-YE3{{4jNi3FGDIjt52bwkLPVgm5s=2l{5$B$*#(<)@S{ zefMIQN%elbW>NKgbD){8pUhO#+R{+EZi`mT7s+2gfkJF6lAdN>TN|+O-#gLeN+%q) mJFI6t$SCf>rTOW>hj-QIZ~dF9o-lX)Kd@VWPd_kK<`DotK{-MI delta 641 zcmZ3qwrJ7XqJ|d67N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw z7O@ub7Ks+g7O5@L(Od0O%gu953rv!dt5R}va?5hFGV_Xyvhz$Ta|LYYE%|**@AHSR z+=5|;ibB}>nK6X6D{}L_EZ*LvDWk)|e^Vv+s;1J;xtzD9Z`@clb-JS(kJR)Fk^Gwk zgf{Eu9FZ54%;=rTx9;YOyVEa5b4yOYAjzY%{lP?bf5z>)CNlrTx5uxQG-aBe;3soZ zV5W*}qtcU9H6D+cTWl)te@*|G!o7R@7k`;RX#xML>0Fn;YqwMs2hOWgEdME$v4%x600Os^`JkrA+%8YJ8HP3>t<_+nPu3H^rCKeDjfZGTcObAxMo zEsLZ8>k^RW>HkzEQns5m%WyE+?NzuFB;xN^_oJaQ`;*wSg(n_tcUaGQkWqZ`D72_Z_KP7lOgs)z zBjY_eF5XR6YcqhK8 noc-uJO&x9CFHjwh5FO^5CjXzJwt0SmE+f#{@|({WI#>Y!EE$GK delta 353 zcmeCb!PI|)X~Sj@g~hLwbR`PUUae{KD=X)c(qv#@oG8oAlFa}Dj5)=VSv}P^|MFNW z?DgGK?!UuAHNh8}({q>DJ~INTl&EVJ0jp$ST>_-_jDZBu2nIzE7LZ%EV>{2JwG+3_ zurRo!-dqYco7FLF^8Fc7lixOqY!;8b#Uyc4_FpVVSNZgSnDx6K?C}wWxqS_2zFxgQ`F_2WLb&DaoCOYt>dRLuJb4O`!=;SLj2u>bp(;KSgcx`~qD@ Npw$wa&lfsa0RWn5Z~*`S diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock index 27705add64dfd07dcdaa1960e0ff554c3a704fd7..51e0e992324618ecaca9c42f0fe8b4cf53789005 100644 GIT binary patch literal 17 VcmZSHe>z%GF8JLu1~3rv1^_jR1gro6 literal 17 VcmZSHe>z%GF8JLu1~3rP001>-1c?9u diff --git a/.gradle/8.8/fileHashes/resourceHashesCache.bin b/.gradle/8.8/fileHashes/resourceHashesCache.bin index aea5b3f5aea9df3f2fd670ebbae950eb6bdabcef..46fb6aaf68aea8d690e128e51b55a5890dd7ae7d 100644 GIT binary patch delta 319 zcmdn`m$C6b;|3E6#s!m2B@FppqCQB;ta4=lgSzXRV{+eAF#PX+m%ek8#16sT6t z7)VG0u^jPv7j*Y5oDzB+s|L9!G0dpUvA5wfp46`0EPz1AvG-m{}1vxqf P0w#g6A&?2PK}d8qP2dv) diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 8c95f688f63aca54302f35f73b9235352deb790f..7294e2ec1fdff4025bc1d3ec7f69cf7ca08cbd46 100644 GIT binary patch literal 17 UcmZSXt8QMcX%M`T0Ss8H0WK;87ytkO literal 17 UcmZSXt8QMcX%M`T0Ss8v0WKB<1ONa4 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Article$ArticleBuilder.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/Article$ArticleBuilder.class.uniqueId7 deleted file mode 100644 index 94e021bdc6d07c1f3254cdc963fb33946d1e7258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3151 zcmd5e8a6>Hzb6ROCbe23EgtPI0+<%Gyx|85(Ob1(AXY1Q?GZT-EmM} zk@yRUp8--)r6TbI_)&;6yX$6cZz`9(@UY&QlQZ9UF5m9i{Qb|9zW{9DFoy&t(n#hp zi4;TeAwTDq&7HP&*mx+Knjy6=9jP}NCd!qQEHcQZk;~%+)wO<dBPlgF^_3u$#}}{X{j7zd?}AvyiA$!o<3DXyjG8oyDPd4;r7Gc z_ji6gujDb01%{;NZSQH!L||KW>FH`3ON1H^8efbY7V)Yn`fCh7mm}%7SVxP&F!xQ5)YcVy z&bjnt!xmePqck@fps-7ITXh?%V?7Y0Rjx&=%8)&hZHMcgOA4zE6=eMiiNtsFn76B& zgqWn z)>qu+U7>|bL4F-22{n0LnojwOIAaxiUABIiBAUN~KEB7Jg`Xa5>cv^Vu|I{ydP?@pR~n2#>2QaJWrD^)ihgOngQ4v27%Fs6n3+6cqX9f(qY*q}qX|4>qnS#mD?aw> z09Tf5^g%*@U89vnCz-LVJO=yScYl+9Q@*i)d$cyenj;qO(>)qCqg39)gb!3DK$Bp4 zW%UpG`Hhwd3`0!^E+G^-hqZXy5E!)L5Pkvg#Npo<8$YOPh;KH7@!yWezcn^~(4!FF zYzFbCY_npu zy&|Iyr)h+e2F0LaOM}LIAzL^NbHi&{PD6>M({xOU)kLQ)S#dN?S)LhgyEY(QCq-j) zB0(q9G)|`s${aKX3vf-e3>uowZ?f!}H09{5L2*&9mu%ah+;qUfW!JW4jd6?lCkZ-d zQ1N{>J*79l)UoWkY$a)eCew7D9g8nmj^!=#9xkToL;A>|h*j@~NA0}g>V02I(`CBC zPIkO)7v9fS!rf@f=9X;jhki|sib=}TWP%C?UFp+m*zT6F_r;e)Tdt_2C1}>56TQ%t zS}n25$x6};O(I4QJCJM2O{;Bf*|Ov~t|vH3$nP11?*(c=m^-r7hK_V<(k$1D22F)7 z-H|9D;mP`@usafB!)=epjom{uV6VEnqcqC5SJtcL>SKe>h1x(KJ52}JQAadUUrAl0 zPdVi0Lsiystf?pVrJMGeb zHgxG!MWeU~7s8!{dsUY`<*+ry&W@}vA#4eag^kv>afT#NI5ol2?&h?Z-$Y!N-8y_7 ztyqp+?{E=S1v1Mg(X9!4Q?x7|>&d9MZ2@oYy>pu_rRR)6rw&>~hPBnZ zVG2i!W_C^DAk`m;7Rtdxof>p6G&o0r=Xj=c+V0C%CoF?*P3PY$$$gB6oKI-3C_67h*kY_=yUi{4h1q2R zsKgr5E8}2}!MHj*JvKy{W3lRo_2hwdeNXrjI;1HG2jYoQNi*o&z>S4+D9#kyRmZ67 zR__ioXl37*?&MK|Z_uy7Qc)K`AOw1g|7oU=>hQ>et|Gytc2_PSe&`H=z8#PJuX&+;@_8-;vcLgG!~Bcx@>#?^$O}pm-!8}Y>ReVVwlll z`qrn5xa0G9LB-MHq9+h1MrUb=Othb1JTK`}x=Pp3{j5!&Lk_PYtVQ^_qgp(2REuYT z)<1^!3w*Cjx>Oat0k9m|F6=P{`yd=P(+_(Uu-68_a-zDh zSq1wIJ=9UJ=^%_3ekbD%9XE(OGjHg0gdX*hkbyYSbriu3I*Hu&5;5LQ#5ipr8No#G z%tFuh1|a-mr~>F)+JtRR#08ZGqTzQm@%S};@SF0HbI))@qx4Akzf&uZ>50}fvCa}P zIDLWD{0#bPrRoS)2WNHQ6>4mqx;SHMl6o$teCV!2S5-J?VSW>SS*bdNHHTx^e~3c2_J((&v4 zxH3FS$CdHBK4`bz=QVZ0kRnIsl6ggsd{*Z9Um*0k#}pY;J!ZssfU4#(zknI0s$3j^ zSwLk0l2xC}_>JM~M^g4h@)?vO)KJ7airzNH79tA5eoikih+;57HhRne6A)?A$UoAZ BZm|FW diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleDataLoader.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleDataLoader.class.uniqueId2 similarity index 100% rename from build/tmp/compileJava/compileTransaction/stash-dir/ArticleDataLoader.class.uniqueId1 rename to build/tmp/compileJava/compileTransaction/stash-dir/ArticleDataLoader.class.uniqueId2 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleRepository.class.uniqueId10 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleRepository.class.uniqueId3 similarity index 100% rename from build/tmp/compileJava/compileTransaction/stash-dir/ArticleRepository.class.uniqueId10 rename to build/tmp/compileJava/compileTransaction/stash-dir/ArticleRepository.class.uniqueId3 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleServiceImpl.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleServiceImpl.class.uniqueId4 similarity index 100% rename from build/tmp/compileJava/compileTransaction/stash-dir/ArticleServiceImpl.class.uniqueId11 rename to build/tmp/compileJava/compileTransaction/stash-dir/ArticleServiceImpl.class.uniqueId4 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag$ArticleTagBuilder.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag$ArticleTagBuilder.class.uniqueId4 deleted file mode 100644 index 3c791254f6f632396a1ae7b1c06cdb1f2c2dae33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2365 zcmcgu>rN9v6#k|_TWYnX+{7y?YFm)?ek-WZL?Nk{2x5#s%(R`9q1zp@JH?RrAU=jB z7!yr=03XVD#$9P)8?q$EAG>quIp6o4vuDoq=dW)+0L9O1sJac$LAi%ZAiu9h`h zSi;d#Z(9rga+NoxI@86rwCloUh{-zfRyxELMW}fDb_830=KSf=kuV`1&7iBp4vP}ii63fn(^kmf*3yz~S*OC-6 z$W){wp0!(5;jVIWG}fxd?KSR7vko@<^|~aa@}aWV zvn+}FRVZ17e}bERD)hRlzu+!!2`yX_tn$&2O=bKW5ne>b-3p5)uyYW?C!JC{P&J31 z;YR+@QIL01E5DQ&MhKwOFm?+pwW8W?O+1#SLNXmOv&NPHo(WGcDUX_3c2OzqX_s&M zU&G79aXp0_xS7B$bB=B^Om!Hfv!$BC@`?PT^_bVRa<>^icGpQ@=z}hCr)~>xs-jf0 zy;%w??%LVoxVpV5dYHfMviG|)RYOQ*ncMb?)S{HcU51-oS?ElI=9`!Gc{VetdBY6c zZ`1Rvz>r=xJ-uvm&l6OjLm}4$<`^!9$a@8z09_tu4mPE0#?KPYQR9zMH|wJ}-7z3n zTE%HROJmI32%$Y{^!xVWWJ?zs*-z5UqFJr@H4pF3;$?jd_N}vzFF+m zKa6}Y{GrJBetrY|;ShcSMGAS6!h1j&G!5*XWpkV z6X4E~euJCq#{7m8z(J_F9;gGjLO3zZ?#Yq$XKxf&X-pE+HG1ygo?#^0BwgzFsZL7t Jhv^|Eegku5Ru}*P diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTag.class.uniqueId13 deleted file mode 100644 index 9b4c6c041e08b62edbe03aac408d4200ed4c82ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2038 zcmb7FYi|=r6g^{a?8I@%gAhoe1xkR#geMNjEs&mHsE%M5BU$9~ z7)4&dKcFXplx_%2lwZo%(hsC*`sL6xmmTe)JjO9WH&!+U3gv;Q8GUR#mB(RB3uKcd z1(pUQNK#+UVFq3nM;Tl?{~)RkXqEDOx_z4}|RFVd<;RR$eJ*l=W>-rU~Dg8nMouVRbRU#shtQst?@iM~Eo z!l2VKWfF~7EN_CJZWUf zyzbM=sd5muYT=gurA4j|O=U}ra*DBaCnKI(J}ifI8B}FkJO0FpXE!wm@}hH^asw+2(LszBNqX zN!V%E)qU-{G@gLTzT`^&qbXmF7a7Ap-gorkcDUkn=>$gCRbE%G)|sWgGMmIDK5=OgfXn!e=eI<^<4PZ*v0kDh`x0HnAAN`>dx>WEA@bZ;={ur# zIPyo9S zrsFQBah>v5nt+M;>M+l*YwY0$0V(_$kJdP)W$HKC6VB5u+@|8iJ-kE7eVO^mz+H@d E2EhI1JOBUy diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTagRepository.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/ArticleTagRepository.class.uniqueId1 similarity index 80% rename from build/tmp/compileJava/compileTransaction/stash-dir/ArticleTagRepository.class.uniqueId8 rename to build/tmp/compileJava/compileTransaction/stash-dir/ArticleTagRepository.class.uniqueId1 index 2d6591d8f08d76a57c5542b5952f060f4e28f8c6..59a7c64bb37770d3822624e9bb4b032d1214ec7f 100644 GIT binary patch delta 128 zcmbOw@3ysCx2v-+o-3_!6lQHnU@lrT$ETac>$9sW5;9< z7JVfze@{P!M7?5=uuo=ji9&I*Lb!)(kSma(mz$cKlsb7Lo8{z4j>C-XlVv$yv#>BS as8627sV}U-z{J1{w1|m8lR*niYXbnc<{_;B delta 58 zcmew%I!i?0)W2Q(7#J9A8MN3Lm>3ysCx2v-+o-3_F`1e3FeBUKD%fl8Pd K)EP9uv?c)N9t_3+ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Scrap$ScrapBuilder.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/Scrap$ScrapBuilder.class.uniqueId3 deleted file mode 100644 index d83ef36aedb8b06cbdc59c4f87a2aebe17f2011f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2285 zcmcgtTTc@~6#k|_TWXbB!26{tXv=NAqZYi-L?NkYEWsEb%(R`r!0ry&onm8=tVeAwBU+3$Sk%y-V5{r=<2Hvsc^m_Y)4DfDMCfFwh1gKu-o z=I)yHtiB-{njtwSU8(Og^c731gGggAg-jNQkY%{lP>%Ihx~}lvG`O~!%Hh(r{D#N3 zEa7UYcdVLOjJ3ywmb9C~V@Sv*`Ksb%awl(5Y&)kKp?+Cr{hx zHbXv(VT>@OxTj^q77Q~n6d~Xj$D;sWPT?3sG1_bI$ubzl38UUg2B*0HNHLxxgO9<+ zL|IzRQwC3GaRz4@jyrr)RFq3ecq#Qd&3w&W?K8alpD}eDzotD&Ib}HgqD6(^h$VMh z`m%0|N3N?h*OFpn$X9LU)YYc-L{JfNEt+J~Ur|lU+fY@yV!37NV1<*RL8}J0SGgz6 zI^68n>ynseWAy7ySywTVyQLn9O8?B2dn)w0YCh*4cZ3!m1ty9yY>`#)@2=P4{KQpI zOjv&xY@lu~GTqJM!J{Re(^>^p!7xIWd$<30tz>GdBim)+>qX^L zL&_~ErF~6ZCD7U*O5%D3H*hnBTjoC8W*FNem+rRO6jtCPxFU~vLo08G;eBW3LtsF< z$lazb{IRN1o2{*KZ?GLZU4|<=TOtDfx&t3{)^eu;Aw`ATc1>zgPU8;4bRa-`3|nVW zHs{$?A*dWP3v)ZqN(|X0(}*iJ_kBTim+dr6VUA(EN0q36#vl!^9TBd{KGx`B}~wf3v|5uq@dApiC+8>5mZ zfz14297%2bG)UyWuS}-11OJgVR^0!$BOMM^(tv>1#1y6lrf+Jav)cmI)@r|w8PscN zG%<^&Kxj{9h+3(6fg9Qq|)D4NvhLKnLzoS;fBCU;n8=BO2|wN`!XCU!e-LU+Peowcrae? zVBdLk?%vz!b$X8l&K1Vkio;Q4$n6;!u^2N>?I%`%^MwxE(j4^S2gb5b{j9QJuMBzL z9_D#?-OV4F!-Yc1?_+IV#$IZ%;$A0xL)PMZXC$4FB5I~^B`Wf zr`ZYZW2et3bw(NYFI%V@%3uqDw}`+TLg zRkjxoAIgN?nDI5?6&}T-BvALYRjJ`7&$_L4Sx4Vmv7;6h6cXJ{n^#^C{=i|6)GIH0o$!mDn~TSzh~_`4i&t3sisQUf>Gza)?@c?GSVAtA{u-$=h_i?J+(t z89npvusf^2RcpzqT*X)1&s7Ona7QP(zFA`rHwdWUYu8%y+-=alNln;Kw{V+==QR9= NJNxD3#Ks-e{{>^a)rkNA diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ScrapController.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/ScrapController.class.uniqueId0 index a83099c60ff73db7de030afe02e8a1d3b3cd2ec1..9849f4a012b3ebf6c6e196e24dafb44623535ad3 100644 GIT binary patch delta 944 zcmb`G&2G~`6ot(YI1#L^fc<1i5++J7UL)d-cA0`rJs@8k8->q@iuj&>+0LzNRaOql)XA!XDo^Xw z%%g@F7T8T`JOFM1*Elp>#|^GFB{w;4wITYrjYak{8XHS21eWEN*QZP%i#w8t{cXN8 z#?^AZz$gzPDnp$6#D)fmn&4qzMq!qMgAt|`VOpr;E)^qib;<&`Mg+G4;e~XoijEfv z=pHi3FVt;$+>XBPu#+TuahcY2U;NX^`|1@3kDzdjBu#b)p1OKm1qJ8$r_3 zctl8<^a{Pu`YcT68wyVOD~uyPjpl4A$n(lHGqTiFpR!Qt>imAdShPh(5HU|Y>Q P%EJuBkNMn+=$`xq5?Nh6 delta 649 zcmb`F%TB^T7=_P_AYo_)o1iHm7w;6oyLbZyZ*gbhk`*EDj4|>6Jb=r_=TIcZ#6%y! zmvHM-7*D53)xC?E`E%w!{lA{}G5wKL?_V!(0BShttDMYO08Fj$3Hk0OsS3hu38yRRzJo20HFx!crJm}2Fy z6NqCPGd#U&7IXA^)jW#q4%6eHgdr?YjY>9vS3sFdqJl-9BeX1WEw>=LSiveaOHx>4 zA+YXUnO)ihlGxBxXR)j%8m0!acrM@o?9=F38u|fEy&vevEXV{7DI5iO$KRG4 BGtU43 diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ScrapRepository.class.uniqueId9 b/build/tmp/compileJava/compileTransaction/stash-dir/ScrapRepository.class.uniqueId9 deleted file mode 100644 index 03c07fe731d618ac371c0d059537991a2c230eb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1539 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 M?+5Z%`4GYX1vphy^Z)<= delta 2076 zcma)6T~L%|6n@UKyC1uJz^);<@>2=4%eT8OB5DF6u7Dtaf(S~cp{yt>kfP3b(K^l4 zUDHh8MNKz(<#gjrMyRWe<3%&gIL%Z}T{M~Yqy4K{WC5*IPc_n!Bh_nh}R z&pGdTd*8?1?sIoeodK{+_8)WK^ybcj136h(j*B`j;dAp$;mi5Xq~r=WcwVb!8-Bw*5w{|hL z+osE6Sz?Zdn`M`I!|gLa2p_cX5tN(WP=R?pnB&xBLV-?hHM2gF?PT?U46{4p%gQ22 zHpxJS*v;o6JK_#n47m9%LoUjZj{v_F2qT0leivgtmLh_BRAM!%#L1KOP~Y{UNhVh% zxx@`o5)zUH8>2)~Ejlt7A&5%JhMit>B}a1M5D!nfY~tcFI{}E7f=y--*+Y`2kWD^Y zIZrHT2T?*}4WZRCXgx~V#33|b5ie*#Bf8n5<7mbKtimB`UPCL65a>~~VG8XyjSigQ z{vCAUU3B3+tieb0x_}H(<_=+03MpkVm|KdZ7&;+6V`a@0#e0t@N-3TwmB_;uPq$M%mGT)q zB9D@%5U$|7%)^+2SzeG*hISJ1St+BW5m^o|DMzL}MrNw{vXfB!X($0gNrtOnxMU0? z9V5sXA$pF&eis99X|QP$)+Azj7Z%wqVZp*+TnQQqG;9(Ld-!7}_vCHv1)bFTLJ1Tr?S+)Ktj11tP1t8o;Ij-GzMvtl z&iiW|%Hne*@TCp2zCMZellb-xhPR38+j&s^H^d6X*c`*`+wJVP5w^)rw#06dHu|rA z9k^EqmiJ!24y60FG2O3WRk=8sYewFG8}@;I#jq?)CBBi>R0QN1C-A)yoI;Hent~YN zDfo`15j(9{Qe>erlIPQ?@=%9mmOT%SI9ar*a419(uTa!;TGheBf_td+NHtZACyM}& zTMY%u3PCALp#HK>FbRY)bP3*xZz^X$x=vF^oA=A+Y|)>L ztjs4F`7+;)uTn z|7LCe9n1nZW&g!;bd^sJh*`h;!5$yc&7Xxbm<0AJ+zAr#_pAHSP?>UhQ)t5GY|)>L z%uFX4H)o2!Wo2Qy%V@PZMwXA2jm7E$OB3tlJf(AB!O2d_Cm{?$l_wC!ZxsbLR0C!JG0ssI2 diff --git a/src/main/java/com/winner_cat/domain/article/repository/ArticleRepository.java b/src/main/java/com/winner_cat/domain/article/repository/ArticleRepository.java index 4cbfe39..151f2d0 100644 --- a/src/main/java/com/winner_cat/domain/article/repository/ArticleRepository.java +++ b/src/main/java/com/winner_cat/domain/article/repository/ArticleRepository.java @@ -27,4 +27,7 @@ public interface ArticleRepository extends JpaRepository { // 오늘 작성된 게시글 찾기 @Query("SELECT a FROM Article a WHERE a.createdAt >= :startTime AND a.createdAt <= :endTime") List
findAllByCreatedAtBetween(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); + + @Query("SELECT a FROM Article a JOIN a.tags at JOIN at.tag t JOIN a.scrapList s WHERE s.member.id = :memberId AND t.tagName = :tagName ORDER BY a.createdAt DESC") + Page
findScrappedArticlesByTag(@Param("memberId") Long memberId, @Param("tagName") String tagName, Pageable pageable); } diff --git a/src/main/java/com/winner_cat/domain/article/repository/ArticleTagRepository.java b/src/main/java/com/winner_cat/domain/article/repository/ArticleTagRepository.java index 9a2e950..f2be06c 100644 --- a/src/main/java/com/winner_cat/domain/article/repository/ArticleTagRepository.java +++ b/src/main/java/com/winner_cat/domain/article/repository/ArticleTagRepository.java @@ -26,8 +26,8 @@ public interface ArticleTagRepository extends JpaRepository { // 태그 이름으로 묶어서 내림차순 추출 @Query("SELECT at.tag.tagName, COUNT(at) FROM ArticleTag at WHERE at.article IN :articles GROUP BY at.tag.tagName ORDER BY COUNT(at) DESC") List findTopTagsByArticles(@Param("articles") List
articles); - - // 회원이 스크랩한 게시글 중 특정 태그에 해당하는 게시글 페이징 조회 - @Query("SELECT at FROM ArticleTag at JOIN at.article a JOIN a.scrapList sc WHERE sc.member = :member and at.tag = :tag ORDER BY a.createdAt DESC") - Page findScrapArticleTagPageByTag(Member member, Tag tag, Pageable pageable); +// +// // 회원이 스크랩한 게시글 중 특정 태그에 해당하는 게시글 페이징 조회 +// @Query("SELECT at FROM ArticleTag at JOIN at.article a JOIN a.scrapList sc WHERE sc.member = :member and at.tag = :tag ORDER BY a.createdAt DESC") +// Page findScrapArticleTagPageByTag(Member member, Tag tag, Pageable pageable); } diff --git a/src/main/java/com/winner_cat/domain/scrap/controller/ScrapController.java b/src/main/java/com/winner_cat/domain/scrap/controller/ScrapController.java index 34b68d8..e1a9ea0 100644 --- a/src/main/java/com/winner_cat/domain/scrap/controller/ScrapController.java +++ b/src/main/java/com/winner_cat/domain/scrap/controller/ScrapController.java @@ -35,6 +35,17 @@ public ResponseEntity getAllMyScrapArticles( return scrapService.getAllMyScrapArticles(userDetails.getEmail(), pageable); } + /** + * 태그로 내가 스크랩한 게시글 조회(미리보기) + */ + @GetMapping("/mine/tag") + public ResponseEntity getAllMyScrapArticlesByTag( + @AuthenticationPrincipal CustomUserDetails userDetails, + @RequestParam String tagName, + Pageable pageable) { + return scrapService.getAllMyScrapArticlesByTag(userDetails.getEmail(), tagName, pageable); + } + /** * 스크랩 취소 */ diff --git a/src/main/java/com/winner_cat/domain/scrap/service/ScrapService.java b/src/main/java/com/winner_cat/domain/scrap/service/ScrapService.java index 0a62ded..2482ebb 100644 --- a/src/main/java/com/winner_cat/domain/scrap/service/ScrapService.java +++ b/src/main/java/com/winner_cat/domain/scrap/service/ScrapService.java @@ -34,8 +34,6 @@ public class ScrapService { private final ScrapRepository scrapRepository; private final MemberRepository memberRepository; private final ArticleRepository articleRepository; - private final TagRepository tagRepository; - private final ArticleTagRepository articleTagRepository; public ResponseEntity scrapArticle(String email, Long articleId) { // 1. 회원 조회 @@ -105,15 +103,13 @@ public ResponseEntity getAllMyScrapArticlesByTag(String email, String tagName // 1. 사용자 정보 얻어오기 Member member = memberRepository.findMemberByEmail(email) .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); - // 2. 태그 정보 얻어오기 - Tag tag = tagRepository.findByTagName(tagName) - .orElseThrow(() -> new GeneralException(ErrorStatus.TAG_NOT_FOUND)); - // 3. 해당 회원이 스크랩한 태그 정보 조회 - Page scrapArticleTagPageByTag = articleTagRepository.findScrapArticleTagPageByTag(member, tag, pageable); - int totalPages = scrapArticleTagPageByTag.getTotalPages(); + + // 2. 해당 회원이 스크랩한 태그 정보 조회 + Page
scrappedArticlesByTag = articleRepository.findScrappedArticlesByTag(member.getId(), tagName, pageable); + int totalPages = scrappedArticlesByTag.getTotalPages(); + List articlePreviewList = new ArrayList<>(); - for (ArticleTag articleTag : scrapArticleTagPageByTag.getContent()) { - Article article = articleTag.getArticle(); + for (Article article : scrappedArticlesByTag.getContent()) { // 관련 태그들 얻어오기 List tagResponseDtoList = article.getTags().stream() .map(at -> TagResponseDto.builder()