From ed00880604e0d46b95f2fc90b7c09a46cc65260d Mon Sep 17 00:00:00 2001 From: Victor Gasperi Date: Tue, 28 Oct 2025 21:33:22 -0300 Subject: [PATCH 01/17] docs: adicionando diagramas --- docs/Diagrama_fluxo.drawio.svg | 4 ++ docs/deploy_to_aws.svg | 102 +++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 docs/Diagrama_fluxo.drawio.svg create mode 100644 docs/deploy_to_aws.svg diff --git a/docs/Diagrama_fluxo.drawio.svg b/docs/Diagrama_fluxo.drawio.svg new file mode 100644 index 0000000..c1a9ccd --- /dev/null +++ b/docs/Diagrama_fluxo.drawio.svg @@ -0,0 +1,4 @@ + + + +
Front
React/Flutter
users
AWS Cloud
k3s
Aluguel
Dart
Disponibilidade
Typescript
Propriedade
Typescript
User
Typescript
Catalogo
Typescript
Uploads
CDN
\ No newline at end of file diff --git a/docs/deploy_to_aws.svg b/docs/deploy_to_aws.svg new file mode 100644 index 0000000..f88bbc4 --- /dev/null +++ b/docs/deploy_to_aws.svg @@ -0,0 +1,102 @@ +Pods (Catálogo, Disp., Aluguel, Prop., User)k3s/DeployEC2 (k3s dentro)AWS (S3, CloudFront, EC2)TerraformDocker HubGitHub ActionsPods (Catálogo, Disp., Aluguel, Prop., User)k3s/DeployEC2 (k3s dentro)AWS (S3, CloudFront, EC2)TerraformDocker HubGitHub ActionsAprovação de deployDeveloperworkflow_dispatch (manual)1env_setup2terraform init/plan/apply3cria/atualiza S3 + CloudFront (uploads)4image build5image push to Docker Hub6terraform init/plan/apply7cria/atualiza EC2 (onde roda k3s)8User Data (git clone + kubectl apply)9pull container images10rollout deployments11iniciar/atualizar pods12status saudável13smoke checks (health/readiness)14Developer \ No newline at end of file From 54c35e88cbca0b0903d48cbd0657cd78612b7b46 Mon Sep 17 00:00:00 2001 From: Victor Gasperi Date: Tue, 28 Oct 2025 21:42:26 -0300 Subject: [PATCH 02/17] docs: upload README --- README.md | 10 ++++++++++ docs/Diagrama_fluxo.drawio.svg | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 41438fb..99b7b5a 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,16 @@ Além de seu propósito funcional, o sistema serve como aplicação prática de --- +## 🗺️ Diagramas + +![Arquitetura](docs/Diagrama_fluxo.drawio.svg) +*Figura 1: Arquitetura do projeto* + +![Fluxo deploy](docs/deploy_to_aws.svg) +*Figura 2: Fluxo de deploy* + +--- + ## 📚 Documentação da API A coleção completa de endpoints, exemplos de requisições e esquemas de resposta está disponível no Postman: diff --git a/docs/Diagrama_fluxo.drawio.svg b/docs/Diagrama_fluxo.drawio.svg index c1a9ccd..afca3f1 100644 --- a/docs/Diagrama_fluxo.drawio.svg +++ b/docs/Diagrama_fluxo.drawio.svg @@ -1,4 +1,4 @@ -
Front
React/Flutter
users
AWS Cloud
k3s
Aluguel
Dart
Disponibilidade
Typescript
Propriedade
Typescript
User
Typescript
Catalogo
Typescript
Uploads
CDN
\ No newline at end of file +
Front
React/Flutter
users
AWS Cloud
k3s
Aluguel
Dart
Disponibilidade
Typescript
Propriedade
Typescript
User
Typescript
Catalogo
Typescript
Uploads
CDN
RabbitMQ
\ No newline at end of file From 6ff9345a7fa3bf8d7f22b412313e8328704c144d Mon Sep 17 00:00:00 2001 From: Victor Gasperi Date: Tue, 28 Oct 2025 21:47:35 -0300 Subject: [PATCH 03/17] docs: arrumando imagens --- README.md | 4 +- docs/Diagrama_fluxo.drawio.svg | 4 -- docs/deploy_to_aws.png | Bin 0 -> 501326 bytes docs/deploy_to_aws.svg | 102 --------------------------------- docs/fluxo.png | Bin 0 -> 77208 bytes 5 files changed, 2 insertions(+), 108 deletions(-) delete mode 100644 docs/Diagrama_fluxo.drawio.svg create mode 100644 docs/deploy_to_aws.png delete mode 100644 docs/deploy_to_aws.svg create mode 100644 docs/fluxo.png diff --git a/README.md b/README.md index 99b7b5a..44e9166 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,10 @@ Além de seu propósito funcional, o sistema serve como aplicação prática de ## 🗺️ Diagramas -![Arquitetura](docs/Diagrama_fluxo.drawio.svg) +![Arquitetura](docs/fluxo.png) *Figura 1: Arquitetura do projeto* -![Fluxo deploy](docs/deploy_to_aws.svg) +![Fluxo deploy](docs/deploy_to_aws.png) *Figura 2: Fluxo de deploy* --- diff --git a/docs/Diagrama_fluxo.drawio.svg b/docs/Diagrama_fluxo.drawio.svg deleted file mode 100644 index afca3f1..0000000 --- a/docs/Diagrama_fluxo.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Front
React/Flutter
users
AWS Cloud
k3s
Aluguel
Dart
Disponibilidade
Typescript
Propriedade
Typescript
User
Typescript
Catalogo
Typescript
Uploads
CDN
RabbitMQ
\ No newline at end of file diff --git a/docs/deploy_to_aws.png b/docs/deploy_to_aws.png new file mode 100644 index 0000000000000000000000000000000000000000..de115724210aebe0804c9e18da28cacfa6d3c7a5 GIT binary patch literal 501326 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

=-TAR96Hey}%FPm-u6sm>3dPGUD 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%0AdJ3g6^~9X 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

^qK>SQgvy0_0wNmBZmKy{ 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 z®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

1a<%wdwcB`=W{l?Pi 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 nH7qvcjzJvo;vmlK0RsPfzz(xtQu`uF}1-<5ox literal 0 HcmV?d00001 diff --git a/docs/deploy_to_aws.svg b/docs/deploy_to_aws.svg deleted file mode 100644 index f88bbc4..0000000 --- a/docs/deploy_to_aws.svg +++ /dev/null @@ -1,102 +0,0 @@ -Pods (Catálogo, Disp., Aluguel, Prop., User)k3s/DeployEC2 (k3s dentro)AWS (S3, CloudFront, EC2)TerraformDocker HubGitHub ActionsPods (Catálogo, Disp., Aluguel, Prop., User)k3s/DeployEC2 (k3s dentro)AWS (S3, CloudFront, EC2)TerraformDocker HubGitHub ActionsAprovação de deployDeveloperworkflow_dispatch (manual)1env_setup2terraform init/plan/apply3cria/atualiza S3 + CloudFront (uploads)4image build5image push to Docker Hub6terraform init/plan/apply7cria/atualiza EC2 (onde roda k3s)8User Data (git clone + kubectl apply)9pull container images10rollout deployments11iniciar/atualizar pods12status saudável13smoke checks (health/readiness)14Developer \ No newline at end of file diff --git a/docs/fluxo.png b/docs/fluxo.png new file mode 100644 index 0000000000000000000000000000000000000000..469605149b730b9a61b569f4f8c7ed55e267b8ed GIT binary patch literal 77208 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�H(g7@WiZL$<{|wnOePZPL(-tu0fqjUl-euFbnfqZMA`@EnRj0ov(j6iTRv^}MNmI^ZJ>gPk02_E%FP5`tze%EtqfoQn*<3jXa%(Q z7aR?yt*6eyU3y*ivO9jS{CPHb^NpKUJL4ESIb~DC+`oZ?kbpe`nbsDr+q(1D5*~bW z?(mRfJ*Dolnq+Z+{7;sF07xNEF$4bl`mzn8s%1KgOv4`=-|R}zkN1n0)Cd{m7KtMf z66yc4z>MZse*znL$krhH;WqnTO2c5}XGwU5E)~IhgDwfq*o+|M*YrT}v-&=R z&CA_63d-(jdM+O@A-~}9Qf8qKr1I<+y5VU;2~G0{jml+Ej|TU3(~oUiJ#)*^E=de| zA#xHvu@fU+xGwhn)f-wYO}2J98dvE6!q#68;_>U>ZQReI$v-JNm{TsH)^XpSe?iW#ffB)`#`XO(u0r{Zp>`JbReT zZ>Zbq5GZ1QyjOTSVbcY!%eM}A2ad+c4o;bG_3TP(z;6>-*QkwX;}K_I_llD+B_$4* z2}Xd^NhaVVi1m4go$>vL&c;`{q^>Tg98Gc-SyNB}%#M;{ECYwCH|rOH+cXiE3pConwcFjiZf_zcmQ&LN=%h^9Bx^B8?JOJ(Nl$)UyM_(0VU6>G2KF6 zDbZVI5^z%Uy;a>?U2p^@P3|=Rp8k7>>G#g=|C(+8H0R5qxPF&cTncQ|!>22lxRR9S zvQDz{S=qYlj!Y#t=CQ=Vm<9T*TK5X_xz&w*+Png&1X&-{!}--Po3!&+Fi4;mUqha}9w-rWrN>=8KmR)}fxaD~p`V&5a#6}~>i zwHUhm3a!`4;$26j4O>`tUBR7(aHO&9ElA=?h3@>zkG)ltuc*C|5?`@(>*D zOXg`lkS?7alYh~%)=tv4L?pzMcOUKRq$p*BTNe)B3tFQzG~l8ex!0CJf`auC;Z z1&3N#wLh1Be-$j(80lSQF@Ve>#mf&+IyAD?0A_q-Pn~l3DGCH z*Ygij1F@CF>~n{0XqDK@aOnv9yzqRF@UrSv+c<}1VmIa*H8!j=e8Xb+Y~z6jzr-Nb z5!s330go$S1!X%DYa{IuEmEUna#j%skPVUib0eNhCFu%6OlE1>kKSNR1B&DIZxA&$mNpM3%I!b4EQ}jV_>b5YU z>$sd03GnPi1F|$j;8H zeujf|HpR1PcZ<2ZiXFs`4Kl!(r_j3L3SR-nu3TiwN;d zW3BQIIb;uSY_39}%ZfT|SBqoHJ`F_uKd${3BiAYCj-BgR{G6u%h6d_1Hy zxt-0(mB6;Q#nlkeb?lotU`*Hy?8iQ2!>g}Cgq>)jwLqvw7K0p{Xze>s`pUP!e&l%BJGq#}r{55-aKz^yt?gk>wRV=4x!#N!Pe#u&L9M{oX~9 zd|>uiaE_8}q4`9ZnHYSMjW8yynnukefQ-`PWNNQ2jqnmx%`+TwU^=@tq7(S07U~CE zNcjbjo$8D@5`WkAE}!swEN4-p{bZ&IfwpEUVqHxYNC{Jo>v}WY6r)->I3t*|>#Nc3 z7AwyuS|4ZKbWR4*#9-@YSYCjr4hDpDv}tP`n;p*=p9dq7wF$7`B2PjPzMGX`tWi67 zytMg@Bktq0-?}fZ7DPPR69(|){56}bkKjfZh56bJ!J~To zVR5T=U+aE95F4anR0Yni3YtobIa<7s%hd8ruj;M2^PthZq2YrUvVuqTopI4HX4NVx zO(>BOo5vMUX@n;SQj9^O`+lDnQXrp0*7OB9nr>ohYQ6jHk*zK)!B@!p;j-{%u_7D@At8Scmb{YdfsjW@ z-f)`e-HTyP|3Ww~y3xT%px~=;45LN6Z0OWo1sRDb1Yc;{!}x8BqmR!tZ!cebcO{H` ze$kDZ=v?$6)vcS;{q~iQ_PN1)Ui&;DbTU=I8M74IZ|I|x;*K5TkmA$jte|qh@x3`_burvllJEYK$f7DkWXj8uIUQO_#K$!m8I$#s-R@s*EG?yfI1gV&9> z+b!%+@s*I*6i5PLfISSAW>S@pDn0_P5gAa9Nazl5bKKF&nICYRs`4gd7MF$?zDPGi zMhq2)@D$3B-i7v_y=N)d!d(qy=m*Zvu#TIJCR*S)t&l7$I))T58%(18jP&?2r zEJQW!${(z2E45SN_C>prT#jK5n@#B)&KTCMY?86OLpuRnMzFC2U?doTjuDH9y zaM`O08-?PksV9$13XBQW-*kKhPPiR_s5FD~5rhvBFC;shmo7H>Q}_Ce^Na+zjoJap z`l~wNtwC$Li-}Gn3li|g6<~*#-|4ybIgbG++rhK zPa9d2f^;D95aigT^{PZS`<~NtZ&sV@vsHPtM(oh@^Rg$)pNd`BgRXq+0`)Nf$=qs_ zjB?0RBCJPBTvbH&WM5qxd$Vn$S;MvI8n2zAX6Kj8F7uB^6Hh?TAH#oHb4B}QcC{4j z@C|6(Xc%(-nUC*X>(JefAwARW8OhJKR|u2_{6EIt0xHU=>-&abC`D4bL6lCVQ;-(v zk{Col5NSlZL%Ks+Is_!7VE~m5=?(?yZX~`l82A0W-}`*)TZ_eV4dcu;XRdS3K70T7 z?=R3>g5!?Q7==U-=|zlr+X8FcGq*vT`4RXAYMywB2plJI$%sPEU-bw2{%OY{^L`kH z%$9cb3$e0#w_=vv)8Z%o`tNx82GJ+nzLI#|PZLTbPKtPU#QlnpTb;M3F_6o7DZB{H zmecwDhgmxDT7;JJKAPevje5HzMDO7bT7J`iWkC#6#Aly6i~Ze`0iMY*oyc^xnoi3% z+9jgd@#M_kPI~Ccq7LYO`X7}8RXms}3vNwGuxvY-fGWdebK|aM-wWLZ$IS3MxI17n zLEQ){e6Gjl1d8ZjvN4O^A3Gd3QQ5tka@AG!B%m`5+wUIKgiH1@pl(3g0#ylK`r z6c6uND2dq!>Cpq^cu>|6pPw{rN6Nol^!syyP9^YS%;_5#F+828uH*OctFW7it{xeE z6;BcAC)+F>lJD$Lv7=#Gu<+19XP-3boh8n_$1(EYUh@YPW}V+^v@}G~R!|`KUm70V zq!`SQQ*>0w$2E|?`KY0D59}o<7|PJU6Xo(Y73lb0`ZL;pt|c4sG0ofR4L9NGckRWO(sRCbvV$<2z1#TPNw3gRe~e+8%4?h!8}54po*(xjYY)JgU07Sy@EI2Ya0z zKY4kz^2OP1$8D|jwN74)tMQIwTKz}pyz!(N zP+?v)`D20=r+4b`R}gQp$3J=TO~Gf_Vez(SqPv>FXJ1xzyCPnddY0eNL_1x2Xtt0> z@Ivj&r03A2W)9c9^E!{21cZtlW%SZa9T#OA-1m@Vq?g1P(1E2ZQ^O$PBefbk0ZJJr$P1j(ENwdbZ6iGN1U48Z9C(8k9 z=D>6kr{Ah`@&2WsV}4rJpV!vcB7HYr z)Uf_AaS-(ko~r26`OH%@x<4X3PAdO)zkZL)YT@EbvC7P(8I#9`#6@49-f|^ymhG{!b5QelZKoL#4^+3uCeC(RU#TF#38eE zxENo(s>hYt5nu309K3Jy>A7wb>CMuoO5inmnU_8!_Z=+|H|+gHmD1Jfe7)jJ`c}|H zKksW2$VZV_c{_RTXSLa@Q+$8f{S2N+;kIQl zT}!p(26?>eSZC`8JIDLZkvEBR;<5ngMO&>NYb9%D&l7)#4Ea1YlWYD#!)=reh(O4i(gipv;zR}3{z{P{lk&>ZE49^!|m)XFTYlkC&LIVB{GYI(l-W&>u zF7y9E2q;R^+>uMaqbYg}-wb z*%$qp>+#m+<5&Bg9_29?P~w!Py>GooYI=JNJG;H-M&@gaBr7P#%j^3}!Mh)sM;ZHM zbkFuu4^-l&nR7vhs#Ol3*0XTUlR6O)3%}#HT%ptH_a&Tue&e_v{@z zRVZs`H)NTt?Z#cp6G7<{)GIRD<;u+I)N5GD@U-|WWd11VU!Sli%bNAr#Qe7#^~z^o zaCdS+qW7cQ??OE;BlPZ*G*(hl(!FW>{?5*rdo#Q@JcRM-I7+HI>(q=?hsO-nxFP;T z>kBs_Iqvt|Gqa*h;22&KqDHOILu*?gIhGF2D@OG6(fp3s=kQ>1E%Nh4rA^TX2M%w; z!{hVw^WCH+-n^N;JNN#iSkUN7ZTORXeCSKHnj-wTtnyMZLOQUssaai0xQZUa1Jm>g zT)iuf#=&=T_IRlOGW+?Qj#6hqQY$6m0%n-H4b6A0yC*Oh)pA2WfBr0MVNvL|-^+KY z8nUDt>80fbmk*Qj)+-S%8KU_K z49wyTh~*+24hkttt^PN2?LqHVd@<`U7v~wqL~fH{#bn+OpLu1g&0=1U*j)!ujGr~a zK9&~fcrt@l)=WqEgX($Zw9JL>A-@!sgOORAK+%Dh7v^JE#qkH<7W2|QCLK0YwrA}3 zMWEG#iyVp7*`7CZobP46G*7vB#TMrGegF0LtbSjb2#e>hsW~Y=$N>e=_a1h;W+n6& z9b(j67A-xSDby^bojE&5sFxOHL_wR&Y^AK5X518Xj3ReAif^jMim#Uri*Mq?i4J(2 zT+cXC-AVS~WywKM}U(5g*_m-l-F zEU;p=D-y@GS0_9(4yYaK-`y&EB$Y3mDA?q{CD8}CIt5Hj%-B@Y)7C5B6s$nOgZ;pA1MP1!xbE-;m z^|W`HCw6v#`cT~cr~9G5W-}qa)At(rr_~aYq;GyHGZ}tM(|R;Wk4!*N7NJ0tN0T1q zwGK6KULrKX;wMKgS?*I<-I{M|o;B9$3d1B`Rc5P~b+Qg&tu4**3{4XL?oH0UmRfm( z)+`GtKw!<9aHb&d3ezuM)1Rzr{YBOf$vfQKswH|&cf>9@4M&Sl1Sj{Kz+e(}! zC6U_Q-O9GS+|(NB6#d{Il^epVFmPVSi*YvXxH70Q>C_|#A)#Fv+wtPIE;EI;g?T9V3KAPdvagfX%;_xJK(-qp+g)Tmx?=)z^ z2)jL8tfTfdjNI(ONI@wzW^5OUczd;3b8_ri0zSTa`^m#|0mtp&z$L!s^Gd08ZEDTV zZ%o#M@8fR#>Z&i%NBIBk=KWmDy<_JPL-?Um|waUP<|~|kEC7vsD1bD z{TcvhC9^$rnQ;j53z!)5V_pCac+1cd%F=A-`F&}aw-vsPNz%a6a+plT?S<)5LfTjXUZBuoedm+(<~ro^xHBKcg-b}u)~j2kX|X+3tFNjStxSoz}%2%Q_Ht3?ot{?5|dd$dm!Y)zMo7;NuyIduI zcV1rXti)7jFa46VOJqvG`bk2wDVo8W`Pic|%(FN>HIBTDH;Db6F-m;a1vw(ryY3cQ z0UakxnG6rwa2PTb@Ak7!JgEggD!s;~H9pH?sdNFtds`d!%1ObyudV0ar+sg;c<^#e z#mMD%pv^#FV`7?NB@h+5Zb1;+*HyVs5hfVSB34F(Z70 zG^MY%REjW${%3J-0^`kdEcIe_osl07)0mDA27SGeo$>JS@SiG?L-2oG6)As=_6wLS zDxrR5@tmoyM?S8Ij48fcR$L0>8j*t_NnX|r=kogX3z2Lw(gBX@7o(UrdeM#BUV$u6 z#`!8DPDHKgg}&##!q8eZoJ+iivg_1aZS7|0$i3|q74uHG!(U;fOG2=w7JY*|17~Yh z7M={uY3U6o<<=D84NCZj z>QK^--0R3loIc~indzhay^Pb z+7jSU8Op8z*Mh8EgZ2>;BW4)5X4yA! zs?+KGk^*}|vFIPE5&b!!MT#?FE(W>pKL_{-?u%T-ZvK^!!u2zHkWI;9nE%A(g}pUW zR8TmbKfT1e_LZie2ya2VKRx<6wGp3erKBRLCEh5Ca^;}7(zz?B+u2@?4p*2Np!a@> z!RZ5X0!dyh-F|5su?*|dxh%&co6d99t6VIqABMh8zO=4iPKv9X9pJws1^Sg8MwcIg{&wIqJ5v)6WjMtFEuD1@wX-*CKrOsI9(M&3z8Y=1( zSko~TC1HjS^QSLUx3OgDZw+VK(=X05MATX5EA>ZDhqLw;o5qj1?zgG6rrR!xtY-)N?0u%Y}Js9C3n3~~Kg86I2YM+YLOEsSQhwbcSmYjucP@@Rh?ReqQg~Zyj zR%72H=Zo9fIdAtQOzQMUuUa1^cK@-zaPbRhx9_wldKm||OrI6IND;e9J9xAEez0`L8m75?IOcIb{4w( zG6z*tjOo`pkzz$Sy)ja^Q(u~B&e}|F+u@pp-`M-dLM`YmgF{1$CsC5pL9D81p~yYL zQc}|LLz*8#6qmPrc`1boSQAAM8$|1YkGGeZW2F?~R$7JRs|uJ2G+)&zaoasPXNntm#%)|M5Pz$=@b*~MI?Y+&u)1F$6_)pn zIA%;G+{qfNszBAmUPUOoUJXslLf>-f@+qv~7?r2dYWRyhG@k`A1)vzn5nt|);dRK z&~GbwELU;{!PIH2hDu*DFbI%J)FII**V>t2x@j?Bti5?9ga%(HRo1Xsx}W);In+dy zpP;Fj?aJ-xsVv^->JRZ^RCZ+>=>2O;>{k+cm26TuGH&YLgxPUji}_|_8nv24dxKzw zg|d5#mn5}+MarO|ztsn{~TPSKuwc22B+xq4Ejt$=7nR<3h zeYwtdKYlP%LF=&C>?%3i?TdW4+eee`t_-0-g`(G#P;LsG1`ERGt@${9p;kJF$K@++)^^^ z_r_HmLmW@WWxS$1Nw8M*oVG?K*A=T(6zn2bx|S3yG-*ZHZdKzGkh1_XOLXROIDU%i zZ8DVXuBsL6vwh@c!gqpFC)>z(Np>fgELiO)m_AIwml9 zGa(RcbQ3ot_!P6o1PhjBeI?<9A^2s9Wt`abZc0Q#*!pOPQ-x@Ph8SDa0~Qa^?ew$L zyRm+0?~C7gj=2*Emk~&1wi#}ngBiYZ+f9o&ClJFe?RdMd-JxPj(i>~a!WuQbp?r5M z%r4StN}oPkW9mr$j?$$-rFH3f!}F+~ku@ZDB9C8H#TU*=8CmJkDcOSpt{^miezm2) z_v6^U%H{lywyEElZ`+rf%Nm0>CX3Nc#m;c*^g##N`|p41ZeYeEe!P+}YAmr}cPPo- zi!@714xY#<#T#l}6boJk9&O^eJ5b{o(VSnd>*@$^KRvbhDswvRW8D;6#WL_s)F&I; z>F2QAMA=W`Qv=r~>oIIc%Yt4aqmu&R0U_b(yP&<-$4+_nt7Fm9#wvdxJ4Oos4d11E zryfTMrw20b@jX|XyjP!;4#LF-vo7b$o?kjy5I9%_Uy!4KLR+MFHIByDTZ7+D-ywm_ z3<1GBnIQomwgx@&F$QcDh9C+7pbu1QdL2L4oChN)aL5e*uL=pY0i<>91K`kVr!xa` zIzA)7?LCsh2)`JX8O)s7+I(uV;8f9Q2W1o-dCFUyK;4wemS`^fSWY_XOWk<+5|sY3 zWaELCaEJcM<{0<{1|M5z+(_{8>11%I224dvS&UI8Bp*H;F3(H5K)=yc9?EaXf5hV^ zkz@iw2n?GrYo>X^sJL$kD#gn99Pe|#^BS8HEb3_m{a*lQWbV_408l%xJ;CV+#hHr- za+VcfD_mf7u?Zm*PPxad>?J>_vTlBM}Z-!%R4mRcu7tASh z-c(k`SbWcp`Xj8NzoSF>>(_n-qAn28$UAJh9GW17t5i)4H&%-r@iaV6+|#EO&l)C_ zZ%Mr?IBjs%YbJ>h9f~@EdP#H6$EH*BPg?OF;soOD9zZVvm3|1SkBci&zILE{6VVNb zAf!C77=1l_<#w(klZbqb$tkmndHW^S0hvujESsT0oSooSHfz%HhZM2p^aP@Nc(

Njhz>5IT`K6s~gODz03d-^*Yt7>G` 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 Date: Tue, 28 Oct 2025 21:48:56 -0300 Subject: [PATCH 04/17] docs: tentando arrumar a leitura da imagem --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 44e9166..9323680 100644 --- a/README.md +++ b/README.md @@ -46,11 +46,15 @@ Além de seu propósito funcional, o sistema serve como aplicação prática de ## 🗺️ Diagramas -![Arquitetura](docs/fluxo.png) -*Figura 1: Arquitetura do projeto* - -![Fluxo deploy](docs/deploy_to_aws.png) -*Figura 2: Fluxo de deploy* +
+ +
Figura 1: Arquitetura do projeto
+
+ +
+ +
Figura 2: Fluxo de deploy
+
--- From 7c9d6a807ff579d493d5050d5336d1a2cd688f7c Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 01:32:42 -0300 Subject: [PATCH 05/17] =?UTF-8?q?chore:=20adicionar=20arquivo=20package-lo?= =?UTF-8?q?ck.json=20e=20atualizar=20depend=C3=AAncias=20para=20peer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/microsservicos/aluguel/package-lock.json | 10 ++++++++++ back/microsservicos/catalogo/package-lock.json | 3 +++ back/microsservicos/disponibilidade/package-lock.json | 11 +++++------ back/microsservicos/property/package-lock.json | 2 ++ back/microsservicos/user/package-lock.json | 2 ++ 5 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 back/microsservicos/aluguel/package-lock.json diff --git a/back/microsservicos/aluguel/package-lock.json b/back/microsservicos/aluguel/package-lock.json new file mode 100644 index 0000000..8fae781 --- /dev/null +++ b/back/microsservicos/aluguel/package-lock.json @@ -0,0 +1,10 @@ +{ + "name": "aluguel", + "lockfileVersion": 3, + "requires": true, + "packages": { + "../../common": { + "extraneous": true + } + } +} diff --git a/back/microsservicos/catalogo/package-lock.json b/back/microsservicos/catalogo/package-lock.json index 576f9d6..e409cb7 100644 --- a/back/microsservicos/catalogo/package-lock.json +++ b/back/microsservicos/catalogo/package-lock.json @@ -239,6 +239,7 @@ "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.913.0.tgz", "integrity": "sha512-YdWHIXn+TltH1MbMkBrFl8Ocxj/PJXleacQ1U5AZRAt8EqxctYkeTNB/+XYS5x6ieYQ4uWnF7sF74sJx+KTpwg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", @@ -1809,6 +1810,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.11.tgz", "integrity": "sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -3590,6 +3592,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/back/microsservicos/disponibilidade/package-lock.json b/back/microsservicos/disponibilidade/package-lock.json index b23f637..ced7176 100644 --- a/back/microsservicos/disponibilidade/package-lock.json +++ b/back/microsservicos/disponibilidade/package-lock.json @@ -11,7 +11,6 @@ "dependencies": { "amqplib": "^0.10.8", "axios": "^1.9.0", - "common": "file:shared/clients/rabbitmq", "cors": "^2.8.5", "dotenv": "^16.5.0", "express": "^5.1.0", @@ -196,6 +195,7 @@ "integrity": "sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -472,10 +472,6 @@ "node": ">= 0.8" } }, - "node_modules/common": { - "resolved": "shared/clients/rabbitmq", - "link": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1661,6 +1657,7 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -1747,6 +1744,8 @@ "node": ">=6" } }, - "shared/clients/rabbitmq": {} + "shared/clients/rabbitmq": { + "extraneous": true + } } } diff --git a/back/microsservicos/property/package-lock.json b/back/microsservicos/property/package-lock.json index a37edc5..ec281fc 100644 --- a/back/microsservicos/property/package-lock.json +++ b/back/microsservicos/property/package-lock.json @@ -178,6 +178,7 @@ "version": "22.15.29", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1592,6 +1593,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/back/microsservicos/user/package-lock.json b/back/microsservicos/user/package-lock.json index a3ad67a..b33ceac 100644 --- a/back/microsservicos/user/package-lock.json +++ b/back/microsservicos/user/package-lock.json @@ -191,6 +191,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1686,6 +1687,7 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" From 49dafaff4b85155d7ec90717bc814c4f93de8618 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 01:32:50 -0300 Subject: [PATCH 06/17] =?UTF-8?q?refactor:=20centralizar=20l=C3=B3gica=20d?= =?UTF-8?q?e=20encerramento=20do=20servidor=20em=20uma=20fun=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aluguel/bin/aluguel_dart.dart | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/back/microsservicos/aluguel/bin/aluguel_dart.dart b/back/microsservicos/aluguel/bin/aluguel_dart.dart index d674423..f2dbcd9 100644 --- a/back/microsservicos/aluguel/bin/aluguel_dart.dart +++ b/back/microsservicos/aluguel/bin/aluguel_dart.dart @@ -21,6 +21,20 @@ import 'package:aluguel_dart/presentation/http/controllers/create_aluguel_contro import 'package:aluguel_dart/presentation/http/controllers/update_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/delete_aluguel_controller.dart'; +Future _shutdownServer(HttpServer server, String message) async { + stdout.writeln(message); + try { + await closeRabbitMQConnection(); + } catch (e) { + stderr.writeln('Erro ao fechar RabbitMQ: $e'); + } finally { + try { + await server.close(force: true); + } catch (_) {} + exit(0); + } +} + Future main() async { final AluguelRepository repo = Environments.getAluguelRepo(); @@ -57,30 +71,12 @@ Future main() async { final server = await io.serve(handler, InternetAddress.anyIPv4, port); print('Aluguel. Porta: $port'); await startQueue(); - ProcessSignal.sigint.watch().listen((_) async { - stdout.writeln('Service aluguel interrupted!'); - try { - await closeRabbitMQConnection(); - } catch (e) { - stderr.writeln('Erro ao fechar RabbitMQ: $e'); - } finally { - try { - await server.close(force: true); - } catch (_) {} - exit(0); - } - }); - ProcessSignal.sigterm.watch().listen((_) async { - stdout.writeln('Service aluguel terminated!'); - try { - await closeRabbitMQConnection(); - } catch (e) { - stderr.writeln('Erro ao fechar RabbitMQ: $e'); - } finally { - try { - await server.close(force: true); - } catch (_) {} - exit(0); - } - }); + ProcessSignal.sigint.watch().listen( + (_) async => _shutdownServer(server, 'Service aluguel interrupted!'), + ); + if (!Platform.isWindows) { + ProcessSignal.sigterm.watch().listen( + (_) async => _shutdownServer(server, 'Service aluguel terminated!'), + ); + } } From 75222706c24cff3d3232f8366819cda2af561803 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:30:31 -0300 Subject: [PATCH 07/17] =?UTF-8?q?chore:=20adicionar=20a=20propriedade=20"p?= =?UTF-8?q?eer"=20em=20v=C3=A1rias=20depend=C3=AAncias=20no=20package-lock?= =?UTF-8?q?.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/package-lock.json | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/front/package-lock.json b/front/package-lock.json index 1f164c6..9616a0f 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -80,6 +80,7 @@ "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -1673,6 +1674,7 @@ "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -1723,6 +1725,7 @@ "integrity": "sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.32.0", "@typescript-eslint/types": "8.32.0", @@ -1946,6 +1949,7 @@ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2130,6 +2134,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001716", "electron-to-chromium": "^1.5.149", @@ -2601,6 +2606,7 @@ "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -2814,6 +2820,7 @@ "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", @@ -4183,6 +4190,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -4318,6 +4326,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4327,6 +4336,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -4851,6 +4861,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -4928,6 +4939,7 @@ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5025,6 +5037,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -5113,6 +5126,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -5160,20 +5174,6 @@ "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -5193,6 +5193,7 @@ "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 28b04f06d8f8650f8bb9bff9ece7b01f9b723946 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:30:44 -0300 Subject: [PATCH 08/17] =?UTF-8?q?chore:=20atualizar=20a=20depend=C3=AAncia?= =?UTF-8?q?=20"crypto"=20para=20ser=20direta=20no=20pubspec.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/microsservicos/aluguel/pubspec.lock | 2 +- back/microsservicos/aluguel/pubspec.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/back/microsservicos/aluguel/pubspec.lock b/back/microsservicos/aluguel/pubspec.lock index 7909722..418ac5a 100644 --- a/back/microsservicos/aluguel/pubspec.lock +++ b/back/microsservicos/aluguel/pubspec.lock @@ -74,7 +74,7 @@ packages: source: hosted version: "1.15.0" crypto: - dependency: transitive + dependency: "direct main" description: name: crypto sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" diff --git a/back/microsservicos/aluguel/pubspec.yaml b/back/microsservicos/aluguel/pubspec.yaml index 6e553e3..39a3017 100644 --- a/back/microsservicos/aluguel/pubspec.yaml +++ b/back/microsservicos/aluguel/pubspec.yaml @@ -14,6 +14,7 @@ dependencies: shelf_router: ^1.1.4 uuid: ^4.5.1 dart_amqp: ^0.2.5 + crypto: ^3.0.6 dev_dependencies: lints: ^6.0.0 From 36a711460da996c217408e6bfc7dd622d516302d Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:39:08 -0300 Subject: [PATCH 09/17] =?UTF-8?q?feat:=20adicionar=20suporte=20para=20c?= =?UTF-8?q?=C3=B3digo=20de=20porta=20nas=20opera=C3=A7=C3=B5es=20de=20alug?= =?UTF-8?q?uel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/create_aluguel_usecase.dart | 39 +++++++++++++------ .../application/update_aluguel_usecase.dart | 18 +++++++-- .../aluguel/lib/domain/entities/aluguel.dart | 3 ++ .../repositories/aluguel_repository.dart | 4 +- .../repositories/aluguel_repository_mock.dart | 4 ++ .../create_aluguel_controller.dart | 12 ++++-- .../update_aluguel_controller.dart | 11 ++++-- 7 files changed, 69 insertions(+), 22 deletions(-) diff --git a/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart index a29b3a5..23f624e 100644 --- a/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart @@ -2,6 +2,7 @@ import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq_event.dart'; +import 'package:aluguel_dart/shared/security/door_code_hasher.dart'; class CreateAluguelUsecase { final AluguelRepository repository; @@ -11,23 +12,36 @@ class CreateAluguelUsecase { Future call({ required String userId, required String workspaceId, - required int startDate, - required int endDate, + required int startDate, + required int endDate, required int people, required num finalPrice, + String? doorCode, }) async { - if (endDate < startDate) { throw StateError('endDate não pode ser menor que startDate.'); } if (people <= 0) { - throw StateError('O número de pessoas para a reserva deve ser diferente de null e maior que.'); + throw StateError( + 'O número de pessoas para a reserva deve ser diferente de null e maior que zero.', + ); } if (finalPrice < 0) { throw StateError('finalPrice não pode ser negativo.'); } + if (doorCode != null) { + if (doorCode.isEmpty) { + throw StateError('doorCode não pode ser vazio.'); + } + if (!RegExp(r'^\d{5}$').hasMatch(doorCode)) { + throw StateError('doorCode deve conter exatamente 5 dígitos.'); + } + } + + final String? hashedDoorCode = + doorCode != null ? hashDoorCode(doorCode) : null; - Aluguel createdAluguel = await repository.createAluguel( + final createdAluguel = await repository.createAluguel( userId: userId, workspaceId: workspaceId, startDate: startDate, @@ -35,20 +49,21 @@ class CreateAluguelUsecase { people: people, finalPrice: finalPrice.toDouble(), status: 'PENDING', + doorCode: hashedDoorCode, ); - RabbitMQEvent aluguelCreated = RabbitMQEvent(eventType: 'AluguelCreated', payload: createdAluguel.toJson()); + final aluguelCreated = RabbitMQEvent( + eventType: 'AluguelCreated', + payload: createdAluguel.toJson(), + ); - final published = await publishEvent('aluguel.created', aluguelCreated.toJson()); + final published = + await publishEvent('aluguel.created', aluguelCreated.toJson()); - if(published){ + if (published) { return createdAluguel; } else { throw StateError('Não foi possível criar o aluguel'); } - } } - - - diff --git a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart index f383073..0c2e7d3 100644 --- a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart @@ -1,5 +1,6 @@ import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; +import 'package:aluguel_dart/shared/security/door_code_hasher.dart'; class UpdateAluguelUsecase { final AluguelRepository repository; @@ -8,13 +9,13 @@ class UpdateAluguelUsecase { Future call( String id, { - int? startDate, + int? startDate, int? endDate, int? people, double? finalPrice, String? status, + String? doorCode, }) async { - if (startDate != null && endDate != null && endDate < startDate) { throw StateError('endDate não pode ser menor que startDate.'); } @@ -24,6 +25,16 @@ class UpdateAluguelUsecase { if (finalPrice != null && finalPrice < 0) { throw StateError('finalPrice não pode ser negativo.'); } + String? hashedDoorCode; + if (doorCode != null) { + if (doorCode.isEmpty) { + throw StateError('doorCode não pode ser vazio.'); + } + if (!RegExp(r'^\d{5}$').hasMatch(doorCode)) { + throw StateError('doorCode deve conter exatamente 5 dígitos.'); + } + hashedDoorCode = hashDoorCode(doorCode); + } return repository.updateAluguel( id, @@ -32,6 +43,7 @@ class UpdateAluguelUsecase { people: people, finalPrice: finalPrice, status: status, + doorCode: hashedDoorCode, ); } -} +} \ No newline at end of file diff --git a/back/microsservicos/aluguel/lib/domain/entities/aluguel.dart b/back/microsservicos/aluguel/lib/domain/entities/aluguel.dart index 961072d..c9dd070 100644 --- a/back/microsservicos/aluguel/lib/domain/entities/aluguel.dart +++ b/back/microsservicos/aluguel/lib/domain/entities/aluguel.dart @@ -7,6 +7,7 @@ class Aluguel { final int people; final double finalPrice; final String status; + final String? doorCode; final int createdAt; final int updatedAt; @@ -19,6 +20,7 @@ class Aluguel { required this.people, required this.finalPrice, required this.status, + this.doorCode, required this.createdAt, required this.updatedAt, }); @@ -33,6 +35,7 @@ class Aluguel { 'people': people, 'finalPrice': finalPrice, 'status': status, + 'doorCode': doorCode, 'createdAt': createdAt, 'updatedAt': updatedAt, }; diff --git a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart index 233b5e7..74fca1f 100644 --- a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart +++ b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart @@ -9,6 +9,7 @@ abstract class AluguelRepository { required int people, required double finalPrice, required String status, + String? doorCode, }); Future getAluguel(String id); @@ -22,8 +23,9 @@ abstract class AluguelRepository { int? people, double? finalPrice, String? status, + String? doorCode, }); Future deleteAluguel(String id); -} \ No newline at end of file +} diff --git a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart index 59a69d7..1629a48 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart @@ -19,6 +19,7 @@ class AluguelRepositoryMock implements AluguelRepository { required int people, required double finalPrice, required String status, + String? doorCode, }) async { @@ -34,6 +35,7 @@ class AluguelRepositoryMock implements AluguelRepository { people: people, finalPrice: finalPrice, status: status, + doorCode: doorCode, createdAt: now, updatedAt: now, ); @@ -60,6 +62,7 @@ class AluguelRepositoryMock implements AluguelRepository { int? people, double? finalPrice, String? status, + String? doorCode, }) async { final atual = store[id]; @@ -79,6 +82,7 @@ class AluguelRepositoryMock implements AluguelRepository { people: people ?? atual.people, finalPrice: finalPrice ?? atual.finalPrice, status: status ?? atual.status, + doorCode: doorCode ?? atual.doorCode, createdAt: atual.createdAt, updatedAt: DateTime.now().millisecondsSinceEpoch ~/ 1000, ); diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart index 80625b1..f1c7fe2 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart @@ -1,8 +1,9 @@ import 'dart:convert'; -import 'package:shelf/shelf.dart'; + import 'package:aluguel_dart/application/create_aluguel_usecase.dart'; -import 'package:aluguel_dart/shared/http/json_response.dart'; import 'package:aluguel_dart/shared/http/app_failures.dart'; +import 'package:aluguel_dart/shared/http/json_response.dart'; +import 'package:shelf/shelf.dart'; class CreateAluguelController { final CreateAluguelUsecase createAluguelUsecase; @@ -24,7 +25,8 @@ class CreateAluguelController { final endDate = data['endDate']; final people = data['people']; final finalPrice = data['finalPrice']; - + final doorCode = data['doorCode']; + if (userId == null || userId.toString().isEmpty) { throw AppFailure('userId_required'); } @@ -43,6 +45,9 @@ class CreateAluguelController { if (finalPrice == null) { throw AppFailure('finalPrice_required'); } + if (doorCode != null && doorCode.toString().isEmpty) { + throw AppFailure('doorCode_cannot_be_empty'); + } final aluguel = await createAluguelUsecase.call( userId: userId, @@ -51,6 +56,7 @@ class CreateAluguelController { endDate: endDate, people: people, finalPrice: finalPrice, + doorCode: doorCode, ); return jsonCreated(aluguel.toJson()); diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart index 8cc6deb..1e6e667 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart @@ -1,9 +1,9 @@ -// lib/src/presentation/http/controllers/update_aluguel_controller.dart import 'dart:convert'; -import 'package:shelf/shelf.dart'; + import 'package:aluguel_dart/application/update_aluguel_usecase.dart'; -import 'package:aluguel_dart/shared/http/json_response.dart'; import 'package:aluguel_dart/shared/http/app_failures.dart'; +import 'package:aluguel_dart/shared/http/json_response.dart'; +import 'package:shelf/shelf.dart'; class UpdateAluguelController { final UpdateAluguelUsecase updateAluguelUsecase; @@ -29,6 +29,7 @@ class UpdateAluguelController { final int? people = data['people']; final num? finalPrice = data['finalPrice']; final String? status = data['status']; + final String? doorCode = data['doorCode']; if (startDate != null && endDate != null && endDate <= startDate) { throw AppFailure('endDate_must_be_greater_than_startDate'); @@ -39,6 +40,9 @@ class UpdateAluguelController { if (finalPrice != null && finalPrice <= 0) { throw AppFailure('finalPrice_must_be_positive'); } + if (doorCode != null && doorCode.isEmpty) { + throw AppFailure('doorCode_cannot_be_empty'); + } final aluguelAtualizado = await updateAluguelUsecase.call( id.toString(), @@ -47,6 +51,7 @@ class UpdateAluguelController { people: people, finalPrice: finalPrice?.toDouble(), status: status, + doorCode: doorCode, ); return jsonOk(aluguelAtualizado.toJson()); From 1e9ca0c1cdfef1bde0f74ec7ee52c38693e3f56e Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:39:53 -0300 Subject: [PATCH 10/17] =?UTF-8?q?feat:=20adicionar=20verifica=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20c=C3=B3digo=20de=20porta=20e=20controlador=20correspond?= =?UTF-8?q?ente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aluguel/bin/aluguel_dart.dart | 7 +- .../application/verify_door_code_usecase.dart | 37 ++++++++ .../clients/rabbitmq/rabbitmq.dart | 95 +++++++++++++++++++ .../controllers/get_door_hash_controller.dart | 56 +++++++++++ .../aluguel/lib/presentation/http/router.dart | 6 +- .../lib/shared/security/door_code_hasher.dart | 16 ++++ 6 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart create mode 100644 back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart create mode 100644 back/microsservicos/aluguel/lib/shared/security/door_code_hasher.dart diff --git a/back/microsservicos/aluguel/bin/aluguel_dart.dart b/back/microsservicos/aluguel/bin/aluguel_dart.dart index f2dbcd9..d09d1ea 100644 --- a/back/microsservicos/aluguel/bin/aluguel_dart.dart +++ b/back/microsservicos/aluguel/bin/aluguel_dart.dart @@ -15,11 +15,13 @@ import 'package:aluguel_dart/application/get_aluguel_usecase.dart'; import 'package:aluguel_dart/application/create_aluguel_usecase.dart'; import 'package:aluguel_dart/application/update_aluguel_usecase.dart'; import 'package:aluguel_dart/application/delete_aluguel_usecase.dart'; +import 'package:aluguel_dart/application/verify_door_code_usecase.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; import 'package:aluguel_dart/presentation/http/controllers/get_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/create_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/update_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/delete_aluguel_controller.dart'; +import 'package:aluguel_dart/presentation/http/controllers/get_door_hash_controller.dart'; Future _shutdownServer(HttpServer server, String message) async { stdout.writeln(message); @@ -43,12 +45,14 @@ Future main() async { final updateAluguelUsecase = UpdateAluguelUsecase(repository: repo); final deleteAluguelUsecase = DeleteAluguelUsecase(repository: repo); final getAllAluguelUsecase = GetAllAluguelUsecase(repository: repo); + final verifyDoorCodeUsecase = VerifyDoorCodeUsecase(repository: repo); final getController = GetAluguelController(getAluguelUsecase); final createController = CreateAluguelController(createAluguelUsecase); final updateController = UpdateAluguelController(updateAluguelUsecase); final deleteController = DeleteAluguelController(deleteAluguelUsecase); final getAllAluguelController = GetAllAluguelController(getAllAluguelUsecase); + final getDoorHashController = GetDoorHashController(verifyDoorCodeUsecase); final router = Router() ..mount( @@ -58,7 +62,8 @@ Future main() async { createController: createController, updateController: updateController, deleteController: deleteController, - getAllAluguelController: getAllAluguelController + getAllAluguelController: getAllAluguelController, + getDoorHashController: getDoorHashController, ).call, ); diff --git a/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart new file mode 100644 index 0000000..3531990 --- /dev/null +++ b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart @@ -0,0 +1,37 @@ +import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; +import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; + +class VerifyDoorCodeUsecase { + final AluguelRepository repository; + + VerifyDoorCodeUsecase({required this.repository}); + + Future call({ + required String aluguelId, + required String plainDoorCode, + }) async { + if (!RegExp(r'^\d{5}$').hasMatch(plainDoorCode)) { + throw StateError('doorCode deve conter exatamente 5 digitos.'); + } + + final aluguel = await repository.getAluguel(aluguelId); + + if (aluguel == null) { + throw StateError('aluguel_not_found'); + } + + if (aluguel.status.toUpperCase() != 'CONFIRMED') { + return false; + } + + final nowEpoch = DateTime.now().millisecondsSinceEpoch ~/ 1000; + if (nowEpoch < aluguel.startDate || nowEpoch > aluguel.endDate) { + return false; + } + + return await verifyDoorCodeWithCatalog( + workspaceId: aluguel.workspaceId, + doorCode: plainDoorCode, + ); + } +} diff --git a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart index ccf43ed..fab9659 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:dart_amqp/dart_amqp.dart'; +import 'package:uuid/uuid.dart'; import 'package:aluguel_dart/shared/environments.dart'; const String EXCHANGE_NAME = 'global_events'; @@ -211,6 +212,100 @@ Future closeRabbitMQConnection() async { +Future verifyDoorCodeWithCatalog({ + required String workspaceId, + required String doorCode, + Duration timeout = const Duration(seconds: 5), +}) async { + final channel = await connectRabbitMQ(); + final exchange = + await channel.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); + final replyQueue = await channel.queue('', exclusive: true, autoDelete: true); + final correlationId = const Uuid().v4(); + final completer = Completer(); + final consumer = await replyQueue.consume(noAck: false); + StreamSubscription? subscription; + + subscription = consumer.listen( + (AmqpMessage message) { + try { + if (message.properties?.corellationId != correlationId) { + message.reject(false); + return; + } + + final decoded = jsonDecode(message.payloadAsString); + bool result = false; + if (decoded is Map) { + result = decoded['valid'] == true; + } else if (decoded is bool) { + result = decoded; + } + + message.ack(); + if (!completer.isCompleted) { + completer.complete(result); + } + subscription?.cancel(); + } catch (error) { + message.reject(false); + if (!completer.isCompleted) { + completer.completeError(error); + } + } + }, + onError: (error) { + if (!completer.isCompleted) { + completer.completeError(error); + } + }, + onDone: () { + if (!completer.isCompleted) { + completer.completeError( + StateError('reply queue closed before receiving response'), + ); + } + }, + cancelOnError: false, + ); + + final payload = { + 'eventType': 'CatalogoVerifyDoorCodeRequest', + 'payload': { + 'workspaceId': workspaceId, + 'doorCode': doorCode, + }, + }; + + final properties = MessageProperties() + ..replyTo = replyQueue.name + ..corellationId = correlationId + ..contentType = 'application/json' + ..deliveryMode = 1; + + exchange.publish( + utf8.encode(jsonEncode(payload)), + 'catalogo.verify-door-code.request', + properties: properties, + ); + + final timer = Timer(timeout, () { + if (!completer.isCompleted) { + completer.completeError( + TimeoutException('Door code verification timed out'), + ); + } + }); + + try { + return await completer.future; + } finally { + timer.cancel(); + await subscription.cancel(); + await replyQueue.delete(); + } +} + const String _DELAY_EXCHANGE = 'aluguel.delay.ex'; // exchange de delay (direct) const String _DELAY_QUEUE = 'aluguel.delay.q'; // fila de delay const String _DELAY_RK = 'aluguel.expire'; // routing key para entrar no delay diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart new file mode 100644 index 0000000..c5fd3cc --- /dev/null +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart @@ -0,0 +1,56 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:aluguel_dart/application/verify_door_code_usecase.dart'; +import 'package:aluguel_dart/shared/http/app_failures.dart'; +import 'package:aluguel_dart/shared/http/json_response.dart'; +import 'package:shelf/shelf.dart'; + +class GetDoorHashController { + final VerifyDoorCodeUsecase verifyDoorCodeUsecase; + + GetDoorHashController(this.verifyDoorCodeUsecase); + + Future handle(Request req) async { + try { + final body = await req.readAsString(); + if (body.isEmpty) { + throw AppFailure('body_required'); + } + + final data = jsonDecode(body); + + final aluguelId = (data['aluguelId'] ?? data['bookingId'])?.toString(); + final doorCode = data['doorCode']?.toString(); + + if (aluguelId == null || aluguelId.isEmpty) { + throw AppFailure('aluguelId_required'); + } + if (doorCode == null || doorCode.isEmpty) { + throw AppFailure('doorCode_required'); + } + + final isValid = await verifyDoorCodeUsecase.call( + aluguelId: aluguelId, + plainDoorCode: doorCode, + ); + + return jsonOk({'valid': isValid}); + } on AppFailure catch (e) { + return jsonBadRequest({'error': e.message}); + } on StateError catch (e) { + if (e.message == 'aluguel_not_found') { + return jsonNotFound({'error': e.message}); + } + return jsonBadRequest({'error': e.message}); + } on TimeoutException { + return Response( + 504, + body: jsonEncode({'error': 'catalogo_timeout'}), + headers: {'content-type': 'application/json'}, + ); + } catch (e) { + return jsonServerError({'error': 'internal_error', 'detail': e.toString()}); + } + } +} diff --git a/back/microsservicos/aluguel/lib/presentation/http/router.dart b/back/microsservicos/aluguel/lib/presentation/http/router.dart index 1f3f526..d8244e8 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/router.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/router.dart @@ -2,6 +2,7 @@ import 'package:aluguel_dart/presentation/http/controllers/create_aluguel_contro import 'package:aluguel_dart/presentation/http/controllers/delete_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/get_all_aluguel_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/get_aluguel_controller.dart'; +import 'package:aluguel_dart/presentation/http/controllers/get_door_hash_controller.dart'; import 'package:aluguel_dart/presentation/http/controllers/update_aluguel_controller.dart'; import 'package:shelf/shelf.dart'; import 'package:shelf_router/shelf_router.dart'; @@ -12,7 +13,8 @@ Router buildAluguelRoutes({ required CreateAluguelController createController, required UpdateAluguelController updateController, required DeleteAluguelController deleteController, - required GetAllAluguelController getAllAluguelController + required GetAllAluguelController getAllAluguelController, + required GetDoorHashController getDoorHashController, }) { final r = Router(); @@ -29,5 +31,7 @@ Router buildAluguelRoutes({ r.delete('/aluguel', deleteController.handle); + r.post('/get-door-hash', getDoorHashController.handle); + return r; } diff --git a/back/microsservicos/aluguel/lib/shared/security/door_code_hasher.dart b/back/microsservicos/aluguel/lib/shared/security/door_code_hasher.dart new file mode 100644 index 0000000..25de5c4 --- /dev/null +++ b/back/microsservicos/aluguel/lib/shared/security/door_code_hasher.dart @@ -0,0 +1,16 @@ +import 'dart:convert'; + +import 'package:crypto/crypto.dart'; + +String hashDoorCode(String code) { + final normalizedCode = code.trim(); + final bytes = utf8.encode(normalizedCode); + return sha256.convert(bytes).toString(); +} + +bool verifyDoorCodeHash({ + required String plainCode, + required String hashedCode, +}) { + return hashDoorCode(plainCode) == hashedCode; +} From f0779e206ef31e384fdeacd55970101b8ff6c5c1 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:40:05 -0300 Subject: [PATCH 11/17] =?UTF-8?q?feat:=20implementar=20verifica=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20c=C3=B3digo=20de=20porta=20com=20hash=20SHA-256?= =?UTF-8?q?=20e=20consumidor=20RabbitMQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create_catalogo_controller.ts | 30 ++++- .../update_catalogo_controller.ts | 33 +++++- back/microsservicos/catalogo/index.ts | 13 ++- .../catalogo/shared/domain/interfaces.ts | 3 +- .../shared/domain/repo/catalogoRepository.ts | 2 +- .../rabbitmq/doorCodeVerificationConsumer.ts | 106 ++++++++++++++++++ .../shared/infra/clients/rabbitmq/rabbitmq.ts | 4 +- .../shared/infra/clients/rabbitmq/types.ts | 3 +- .../infra/repo/catalogoRepositoryMock.ts | 16 ++- 9 files changed, 196 insertions(+), 14 deletions(-) create mode 100644 back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts diff --git a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts index d37f76c..6f8e512 100644 --- a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts @@ -1,3 +1,4 @@ +import crypto from "crypto"; import { CreateCatalogoUsecase } from "./create_catalogo_usecase"; import { Request, Response } from "express"; import { Catalogo } from "../../shared/domain/interfaces"; @@ -30,6 +31,12 @@ export class CreateCatalogoController { if (body.capacity === undefined) throw new Error("Missing catalogo capacity"); + const { + doorCode, + doorCodeHash: providedDoorCodeHash, + ...restBody + } = body; + const price = typeof body.price === "string" ? Number(body.price) : body.price; const capacity = @@ -41,12 +48,33 @@ export class CreateCatalogoController { ? [body.comodities] : []; + let doorCodeHash: string | undefined = providedDoorCodeHash; + const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; + + if (rawDoorInput !== undefined) { + if (typeof rawDoorInput !== "string") { + throw new Error("doorCode must be a string"); + } + const trimmed = rawDoorInput.trim(); + + if (/^\d{5}$/.test(trimmed)) { + doorCodeHash = crypto.createHash("sha256").update(trimmed).digest("hex"); + } else if (/^[a-f0-9]{64}$/i.test(trimmed)) { + doorCodeHash = trimmed.toLowerCase(); + } else { + throw new Error( + "Invalid doorCode format. Provide 5 digits or a SHA-256 hash.", + ); + } + } + const roomProps = { - ...body, + ...restBody, comodities, pictures: [], price, capacity, + doorCodeHash, } as Catalogo; const createdRoom = this.usecase.execute(roomProps); diff --git a/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts b/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts index c1374d7..ed218d7 100644 --- a/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts @@ -1,4 +1,5 @@ import axios from "axios"; +import crypto from "crypto"; import { Request, Response } from 'express' import { UpdateCatalogoUsecase } from "./update_catalogo_usecase"; import { updateCatalogoProps } from "../../shared/domain/types"; @@ -19,7 +20,35 @@ export class UpdateCatalogoController { if (id === undefined) throw new Error('ID não informado') if (id.length !== 36) throw new Error('ID inválido') - const props: updateCatalogoProps = { id, ...req.body }; + const { + doorCode, + doorCodeHash: providedDoorCodeHash, + ...restBody + } = req.body ?? {}; + + let doorCodeHash: string | undefined = providedDoorCodeHash; + const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; + + if (rawDoorInput !== undefined) { + if (typeof rawDoorInput !== "string") { + throw new Error("doorCode must be a string"); + } + const trimmed = rawDoorInput.trim(); + + if (/^\d{5}$/.test(trimmed)) { + doorCodeHash = crypto.createHash("sha256").update(trimmed).digest("hex"); + } else if (/^[a-f0-9]{64}$/i.test(trimmed)) { + doorCodeHash = trimmed.toLowerCase(); + } else { + throw new Error("Invalid doorCode format. Provide 5 digits or a SHA-256 hash."); + } + } + + const props: updateCatalogoProps = { + id, + ...restBody, + ...(doorCodeHash ? { doorCodeHash } : {}), + }; const room_updated = this.usecase.execute(props) @@ -50,4 +79,4 @@ export class UpdateCatalogoController { } -} \ No newline at end of file +} diff --git a/back/microsservicos/catalogo/index.ts b/back/microsservicos/catalogo/index.ts index 77a801c..fcb75fb 100644 --- a/back/microsservicos/catalogo/index.ts +++ b/back/microsservicos/catalogo/index.ts @@ -2,12 +2,19 @@ import { Environments } from './shared/environments' import { startQueue } from './shared/handlers/event/eventsHandler' import { App } from './shared/handlers/server/app' import { closeRabbitMQConnection } from './shared/infra/clients/rabbitmq/rabbitmq' +import { startDoorCodeVerificationConsumer } from './shared/infra/clients/rabbitmq/doorCodeVerificationConsumer' const port = Environments.getEnvs().port -new App().server.listen(port, () => { +new App().server.listen(port, async () => { console.log(`Catalogos. Porta: ${port}`) - startQueue() + try { + await startQueue() + await startDoorCodeVerificationConsumer() + } catch (error) { + console.error('Failed to start RabbitMQ consumers', error) + process.exit(1) + } }) // Desligamento seguro do RabbitMQ @@ -15,4 +22,4 @@ process.on('SIGINT', async () => { console.log('Service catalogo interrupted!') await closeRabbitMQConnection() process.exit(0) -}) \ No newline at end of file +}) diff --git a/back/microsservicos/catalogo/shared/domain/interfaces.ts b/back/microsservicos/catalogo/shared/domain/interfaces.ts index 9812125..6b61c9a 100644 --- a/back/microsservicos/catalogo/shared/domain/interfaces.ts +++ b/back/microsservicos/catalogo/shared/domain/interfaces.ts @@ -7,4 +7,5 @@ export interface Catalogo { pictures: string[] price: number capacity: number -} \ No newline at end of file + doorCodeHash?: string +} diff --git a/back/microsservicos/catalogo/shared/domain/repo/catalogoRepository.ts b/back/microsservicos/catalogo/shared/domain/repo/catalogoRepository.ts index 7c1119e..4913669 100644 --- a/back/microsservicos/catalogo/shared/domain/repo/catalogoRepository.ts +++ b/back/microsservicos/catalogo/shared/domain/repo/catalogoRepository.ts @@ -4,7 +4,7 @@ import { updateCatalogoProps } from '../types'; export interface CatalogoRepository { getAllCatalogo(): { [key: string]: Catalogo }; - getCatalogo(id: string): Catalogo; + getCatalogo(id: string): Catalogo | undefined; createCatalogo(props: Catalogo): Catalogo; diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts new file mode 100644 index 0000000..f7533f3 --- /dev/null +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts @@ -0,0 +1,106 @@ +import crypto from 'crypto'; + +import type { ConsumeMessage } from 'amqplib'; +import { Environments } from '../../../environments'; +import { connectRabbitMQ, EXCHANGE_NAME } from './rabbitmq'; + +const DOOR_CODE_RPC_QUEUE = 'catalogo.verify-door-code.rpc'; +const DOOR_CODE_REQUEST_RK = 'catalogo.verify-door-code.request'; + +export const startDoorCodeVerificationConsumer = async (): Promise => { + const channel = await connectRabbitMQ(); + + await channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true }); + + const { queue } = await channel.assertQueue(DOOR_CODE_RPC_QUEUE, { + durable: false, + exclusive: false, + autoDelete: false, + }); + + await channel.bindQueue(queue, EXCHANGE_NAME, DOOR_CODE_REQUEST_RK); + + await channel.consume(queue, async (msg: ConsumeMessage | null) => { + if (!msg) { + return; + } + + try { + const { replyTo, correlationId } = msg.properties; + + if (!replyTo || !correlationId) { + console.warn( + '[DoorCodeVerification] Missing replyTo or correlationId. Ignoring message.', + ); + channel.ack(msg); + return; + } + + let parsedPayload: any; + try { + parsedPayload = JSON.parse(msg.content.toString()); + } catch (error) { + console.error( + '[DoorCodeVerification] Failed to parse message payload:', + error, + ); + parsedPayload = {}; + } + + const payload = parsedPayload?.payload ?? parsedPayload; + const workspaceId = payload?.workspaceId; + const doorCode: string | undefined = payload?.doorCode; + + let valid = false; + + if (workspaceId && typeof doorCode === 'string') { + try { + const repo = Environments.getCatalogoRepo(); + const catalogo = repo.getCatalogo(workspaceId); + const storedHash = catalogo?.doorCodeHash; + + if (storedHash) { + const computedHash = crypto + .createHash('sha256') + .update(doorCode.trim()) + .digest('hex'); + + valid = computedHash === storedHash; + } + } catch (error) { + console.error( + '[DoorCodeVerification] Error while validating door code:', + error, + ); + } + } + + channel.sendToQueue( + replyTo, + Buffer.from(JSON.stringify({ valid })), + { + correlationId, + contentType: 'application/json', + }, + ); + } catch (error) { + console.error( + '[DoorCodeVerification] Unexpected error handling request:', + error, + ); + const { replyTo, correlationId } = msg.properties; + if (replyTo && correlationId) { + channel.sendToQueue( + replyTo, + Buffer.from(JSON.stringify({ valid: false, error: 'internal_error' })), + { + correlationId, + contentType: 'application/json', + }, + ); + } + } finally { + channel.ack(msg); + } + }); +}; diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/rabbitmq.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/rabbitmq.ts index 2f44eef..f7ee2b4 100644 --- a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/rabbitmq.ts +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/rabbitmq.ts @@ -9,12 +9,12 @@ if (!RABBITMQ_URL) { process.exit(1); } -const EXCHANGE_NAME = 'global_events'; +export const EXCHANGE_NAME = 'global_events'; let connection: Connection | null = null; let channel: Channel | null = null; -const connectRabbitMQ = async (): Promise => { +export const connectRabbitMQ = async (): Promise => { if (channel) { return channel; diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/types.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/types.ts index f4c99aa..fd5f27f 100644 --- a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/types.ts +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/types.ts @@ -8,6 +8,7 @@ export type catalogo = { pictures: string[] price: number capacity: number + doorCodeHash?: string } export type userInformation = { @@ -17,4 +18,4 @@ export type userInformation = { cpf: string; birth: number; phone: string; -}; \ No newline at end of file +}; diff --git a/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts b/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts index b58cee7..cb9b60d 100644 --- a/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts +++ b/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts @@ -16,7 +16,7 @@ export class CatalogoRepositoryMock implements CatalogoRepository { return this.baseCatalogo } - public getCatalogo(id: string): Catalogo { + public getCatalogo(id: string): Catalogo | undefined { return this.baseCatalogo[id] } @@ -32,7 +32,8 @@ export class CatalogoRepositoryMock implements CatalogoRepository { comodities: props.comodities, pictures: props.pictures, price: props.price, - capacity: props.capacity + capacity: props.capacity, + doorCodeHash: props.doorCodeHash } this.baseCatalogo[id] = room @@ -45,6 +46,10 @@ export class CatalogoRepositoryMock implements CatalogoRepository { const room_to_update = this.getCatalogo(props.id) + if (!room_to_update) { + throw new Error(`Catalogo with id "${props.id}" not found.`) + } + if(props.name) room_to_update.name = props.name if(props.description) room_to_update.description = props.description if(props.address) room_to_update.address = props.address @@ -52,6 +57,7 @@ export class CatalogoRepositoryMock implements CatalogoRepository { if(props.pictures && props.pictures.length > 0) room_to_update.pictures = props.pictures if(props.price) room_to_update.price = props.price if(props.capacity) room_to_update.capacity = props.capacity + if(props.doorCodeHash) room_to_update.doorCodeHash = props.doorCodeHash return room_to_update @@ -61,10 +67,14 @@ export class CatalogoRepositoryMock implements CatalogoRepository { const room_to_delete = this.getCatalogo(id) + if (!room_to_delete) { + throw new Error(`Catalogo with id "${id}" not found.`) + } + delete this.baseCatalogo[id] return room_to_delete } -} \ No newline at end of file +} From 75d5e0eac04025ba632647d54185976ce8ed7c80 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:41:18 -0300 Subject: [PATCH 12/17] =?UTF-8?q?chore:=20comentar=20importa=C3=A7=C3=B5es?= =?UTF-8?q?=20e=20testes=20no=20arquivo=20aluguel=5Fdart=5Ftest.dart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aluguel/test/aluguel_dart_test.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/back/microsservicos/aluguel/test/aluguel_dart_test.dart b/back/microsservicos/aluguel/test/aluguel_dart_test.dart index 55f47a4..2da1c1e 100644 --- a/back/microsservicos/aluguel/test/aluguel_dart_test.dart +++ b/back/microsservicos/aluguel/test/aluguel_dart_test.dart @@ -1,8 +1,8 @@ -import 'package:aluguel_dart/aluguel_dart.dart'; -import 'package:test/test.dart'; +// import 'package:aluguel_dart/aluguel_dart.dart'; +// import 'package:test/test.dart'; -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} +// void main() { +// test('calculate', () { +// expect(calculate(), 42); +// }); +// } From 907726e92f77175355e699bf1c2b9d9bec7f3488 Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 03:50:26 -0300 Subject: [PATCH 13/17] =?UTF-8?q?feat:=20remover=20suporte=20a=20c=C3=B3di?= =?UTF-8?q?go=20de=20porta=20nas=20opera=C3=A7=C3=B5es=20de=20cria=C3=A7?= =?UTF-8?q?=C3=A3o=20de=20aluguel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/application/create_aluguel_usecase.dart | 16 +--------------- .../domain/repositories/aluguel_repository.dart | 1 - .../repositories/aluguel_repository_mock.dart | 2 -- .../controllers/create_aluguel_controller.dart | 5 ----- 4 files changed, 1 insertion(+), 23 deletions(-) diff --git a/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart index 23f624e..acd74cd 100644 --- a/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/create_aluguel_usecase.dart @@ -2,7 +2,6 @@ import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq_event.dart'; -import 'package:aluguel_dart/shared/security/door_code_hasher.dart'; class CreateAluguelUsecase { final AluguelRepository repository; @@ -15,8 +14,7 @@ class CreateAluguelUsecase { required int startDate, required int endDate, required int people, - required num finalPrice, - String? doorCode, + required num finalPrice }) async { if (endDate < startDate) { throw StateError('endDate não pode ser menor que startDate.'); @@ -29,17 +27,6 @@ class CreateAluguelUsecase { if (finalPrice < 0) { throw StateError('finalPrice não pode ser negativo.'); } - if (doorCode != null) { - if (doorCode.isEmpty) { - throw StateError('doorCode não pode ser vazio.'); - } - if (!RegExp(r'^\d{5}$').hasMatch(doorCode)) { - throw StateError('doorCode deve conter exatamente 5 dígitos.'); - } - } - - final String? hashedDoorCode = - doorCode != null ? hashDoorCode(doorCode) : null; final createdAluguel = await repository.createAluguel( userId: userId, @@ -49,7 +36,6 @@ class CreateAluguelUsecase { people: people, finalPrice: finalPrice.toDouble(), status: 'PENDING', - doorCode: hashedDoorCode, ); final aluguelCreated = RabbitMQEvent( diff --git a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart index 74fca1f..653c297 100644 --- a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart +++ b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart @@ -9,7 +9,6 @@ abstract class AluguelRepository { required int people, required double finalPrice, required String status, - String? doorCode, }); Future getAluguel(String id); diff --git a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart index 1629a48..37151f5 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart @@ -19,7 +19,6 @@ class AluguelRepositoryMock implements AluguelRepository { required int people, required double finalPrice, required String status, - String? doorCode, }) async { @@ -35,7 +34,6 @@ class AluguelRepositoryMock implements AluguelRepository { people: people, finalPrice: finalPrice, status: status, - doorCode: doorCode, createdAt: now, updatedAt: now, ); diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart index f1c7fe2..0c650e4 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/create_aluguel_controller.dart @@ -25,7 +25,6 @@ class CreateAluguelController { final endDate = data['endDate']; final people = data['people']; final finalPrice = data['finalPrice']; - final doorCode = data['doorCode']; if (userId == null || userId.toString().isEmpty) { throw AppFailure('userId_required'); @@ -45,9 +44,6 @@ class CreateAluguelController { if (finalPrice == null) { throw AppFailure('finalPrice_required'); } - if (doorCode != null && doorCode.toString().isEmpty) { - throw AppFailure('doorCode_cannot_be_empty'); - } final aluguel = await createAluguelUsecase.call( userId: userId, @@ -56,7 +52,6 @@ class CreateAluguelController { endDate: endDate, people: people, finalPrice: finalPrice, - doorCode: doorCode, ); return jsonCreated(aluguel.toJson()); From 2f046a82c49ad05729f70ab28d1e15f66be04f5e Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Fri, 31 Oct 2025 18:14:28 -0300 Subject: [PATCH 14/17] =?UTF-8?q?feat:=20remover=20l=C3=B3gica=20de=20veri?= =?UTF-8?q?fica=C3=A7=C3=A3o=20e=20manipula=C3=A7=C3=A3o=20de=20doorCode?= =?UTF-8?q?=20nas=20opera=C3=A7=C3=B5es=20de=20cria=C3=A7=C3=A3o=20e=20atu?= =?UTF-8?q?aliza=C3=A7=C3=A3o=20de=20cat=C3=A1logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../create_catalogo_controller.ts | 56 ++++++++++--------- .../update_catalogo_controller.ts | 33 +---------- .../catalogo/shared/domain/interfaces.ts | 2 +- 3 files changed, 33 insertions(+), 58 deletions(-) diff --git a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts index 6f8e512..29142c3 100644 --- a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts @@ -1,4 +1,4 @@ -import crypto from "crypto"; +import crypto, { randomInt } from "crypto"; import { CreateCatalogoUsecase } from "./create_catalogo_usecase"; import { Request, Response } from "express"; import { Catalogo } from "../../shared/domain/interfaces"; @@ -31,11 +31,11 @@ export class CreateCatalogoController { if (body.capacity === undefined) throw new Error("Missing catalogo capacity"); - const { - doorCode, - doorCodeHash: providedDoorCodeHash, - ...restBody - } = body; + // const { + // doorCode, + // doorCodeHash: providedDoorCodeHash, + // ...restBody + // } = body; const price = typeof body.price === "string" ? Number(body.price) : body.price; @@ -48,28 +48,32 @@ export class CreateCatalogoController { ? [body.comodities] : []; - let doorCodeHash: string | undefined = providedDoorCodeHash; - const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; - - if (rawDoorInput !== undefined) { - if (typeof rawDoorInput !== "string") { - throw new Error("doorCode must be a string"); - } - const trimmed = rawDoorInput.trim(); - - if (/^\d{5}$/.test(trimmed)) { - doorCodeHash = crypto.createHash("sha256").update(trimmed).digest("hex"); - } else if (/^[a-f0-9]{64}$/i.test(trimmed)) { - doorCodeHash = trimmed.toLowerCase(); - } else { - throw new Error( - "Invalid doorCode format. Provide 5 digits or a SHA-256 hash.", - ); - } - } + // let doorCodeHash: string | undefined = providedDoorCodeHash; + // const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; + + // if (rawDoorInput !== undefined) { + // if (typeof rawDoorInput !== "string") { + // throw new Error("doorCode must be a string"); + // } + // const trimmed = rawDoorInput.trim(); + + // if (trimmed.length === 0) { + // throw new Error("doorCode cannot be empty"); + // } + // if (trimmed.length !== 5) { + // throw new Error("doorCode must be exactly 5 characters"); + // } + // if (!/^[0-9]+$/.test(trimmed)) { + // throw new Error("doorCode must be numeric"); + // } + + // doorCodeHash = trimmed.toLowerCase(); + // } + + const doorCodeHash = String(Math.floor(Math.random() * 100000)).padStart(5, '0'); const roomProps = { - ...restBody, + ...body, comodities, pictures: [], price, diff --git a/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts b/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts index ed218d7..c1374d7 100644 --- a/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/update_catalogo/update_catalogo_controller.ts @@ -1,5 +1,4 @@ import axios from "axios"; -import crypto from "crypto"; import { Request, Response } from 'express' import { UpdateCatalogoUsecase } from "./update_catalogo_usecase"; import { updateCatalogoProps } from "../../shared/domain/types"; @@ -20,35 +19,7 @@ export class UpdateCatalogoController { if (id === undefined) throw new Error('ID não informado') if (id.length !== 36) throw new Error('ID inválido') - const { - doorCode, - doorCodeHash: providedDoorCodeHash, - ...restBody - } = req.body ?? {}; - - let doorCodeHash: string | undefined = providedDoorCodeHash; - const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; - - if (rawDoorInput !== undefined) { - if (typeof rawDoorInput !== "string") { - throw new Error("doorCode must be a string"); - } - const trimmed = rawDoorInput.trim(); - - if (/^\d{5}$/.test(trimmed)) { - doorCodeHash = crypto.createHash("sha256").update(trimmed).digest("hex"); - } else if (/^[a-f0-9]{64}$/i.test(trimmed)) { - doorCodeHash = trimmed.toLowerCase(); - } else { - throw new Error("Invalid doorCode format. Provide 5 digits or a SHA-256 hash."); - } - } - - const props: updateCatalogoProps = { - id, - ...restBody, - ...(doorCodeHash ? { doorCodeHash } : {}), - }; + const props: updateCatalogoProps = { id, ...req.body }; const room_updated = this.usecase.execute(props) @@ -79,4 +50,4 @@ export class UpdateCatalogoController { } -} +} \ No newline at end of file diff --git a/back/microsservicos/catalogo/shared/domain/interfaces.ts b/back/microsservicos/catalogo/shared/domain/interfaces.ts index 6b61c9a..01c5658 100644 --- a/back/microsservicos/catalogo/shared/domain/interfaces.ts +++ b/back/microsservicos/catalogo/shared/domain/interfaces.ts @@ -7,5 +7,5 @@ export interface Catalogo { pictures: string[] price: number capacity: number - doorCodeHash?: string + doorCodeHash: string } From 705996a0ea9dceafd7a23ae28f025b40c807e48a Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Sat, 1 Nov 2025 03:39:21 -0300 Subject: [PATCH 15/17] =?UTF-8?q?feat:=20implementar=20consumidor=20para?= =?UTF-8?q?=20busca=20de=20c=C3=B3digo=20de=20porta=20e=20refatorar=20veri?= =?UTF-8?q?fica=C3=A7=C3=A3o=20de=20c=C3=B3digo=20de=20porta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/application/get_aluguel_usecase.dart | 2 +- .../application/update_aluguel_usecase.dart | 41 +++- .../clients/rabbitmq/rabbitmq.dart | 229 ++++++++++++++---- .../presentation/events/event_handler.dart | 64 +++-- .../controllers/get_door_hash_controller.dart | 5 +- .../create_catalogo_controller.ts | 4 +- back/microsservicos/catalogo/index.ts | 3 +- .../rabbitmq/doorCodeVerificationConsumer.ts | 101 +++++++- 8 files changed, 367 insertions(+), 82 deletions(-) diff --git a/back/microsservicos/aluguel/lib/application/get_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/get_aluguel_usecase.dart index 5643362..c8fdd43 100644 --- a/back/microsservicos/aluguel/lib/application/get_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/get_aluguel_usecase.dart @@ -5,7 +5,7 @@ class GetAluguelUsecase { final AluguelRepository repository; GetAluguelUsecase({required this.repository}); - + Future call(String id) async { if (id.isEmpty) { throw ArgumentError('ID do aluguel não pode ser vazio.'); diff --git a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart index 0c2e7d3..9747463 100644 --- a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart @@ -1,6 +1,6 @@ import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; -import 'package:aluguel_dart/shared/security/door_code_hasher.dart'; +import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; class UpdateAluguelUsecase { final AluguelRepository repository; @@ -25,15 +25,36 @@ class UpdateAluguelUsecase { if (finalPrice != null && finalPrice < 0) { throw StateError('finalPrice não pode ser negativo.'); } - String? hashedDoorCode; - if (doorCode != null) { - if (doorCode.isEmpty) { - throw StateError('doorCode não pode ser vazio.'); + + String? desiredDoorCode = doorCode; + + if (status != null && + status.toUpperCase() == 'CONFIRMED' && + doorCode == null) { + final current = await repository.getAluguel(id); + if (current == null) { + throw StateError('aluguel_not_found'); + } + + final fetchedDoorCode = await fetchDoorCodeFromCatalog( + current.workspaceId, + ); + if (fetchedDoorCode == null || fetchedDoorCode.isEmpty) { + throw StateError('door_code_not_found'); + } + desiredDoorCode = fetchedDoorCode; + } + + String? sanitizedDoorCode; + if (desiredDoorCode != null) { + final trimmedDoorCode = desiredDoorCode.trim(); + if (trimmedDoorCode.isEmpty) { + throw StateError('doorCode nǜo pode ser vazio.'); } - if (!RegExp(r'^\d{5}$').hasMatch(doorCode)) { - throw StateError('doorCode deve conter exatamente 5 dígitos.'); + if (!RegExp(r'^\d{5}$').hasMatch(trimmedDoorCode)) { + throw StateError('doorCode deve conter exatamente 5 d��gitos.'); } - hashedDoorCode = hashDoorCode(doorCode); + sanitizedDoorCode = trimmedDoorCode; } return repository.updateAluguel( @@ -43,7 +64,7 @@ class UpdateAluguelUsecase { people: people, finalPrice: finalPrice, status: status, - doorCode: hashedDoorCode, + doorCode: sanitizedDoorCode, ); } -} \ No newline at end of file +} diff --git a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart index fab9659..ddbc0b5 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart @@ -29,7 +29,9 @@ Future _invalidateChannel({String reason = 'unknown'}) async { // ignore } finally { _channel = null; - stdout.writeln('[RabbitMQ] Channel invalidated (reason: $reason). Will recreate on next use.'); + stdout.writeln( + '[RabbitMQ] Channel invalidated (reason: $reason). Will recreate on next use.', + ); } } @@ -40,7 +42,9 @@ Future _getConnection() async { _ensureRabbitUrlOrExit(); final uri = Uri.parse(RABBITMQ_URL); - final user = uri.userInfo.isNotEmpty ? Uri.decodeComponent(uri.userInfo.split(':').first) : 'guest'; + final user = uri.userInfo.isNotEmpty + ? Uri.decodeComponent(uri.userInfo.split(':').first) + : 'guest'; final pass = (uri.userInfo.contains(':')) ? Uri.decodeComponent(uri.userInfo.split(':').last) : 'guest'; @@ -67,7 +71,9 @@ Future connectRabbitMQ() async { // Espelha o TS: assert do exchange topic/durable await _channel!.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); - stdout.writeln('[RabbitMQ] Connected. Channel created and exchange asserted.'); + stdout.writeln( + '[RabbitMQ] Connected. Channel created and exchange asserted.', + ); return _channel!; } catch (e) { stderr.writeln('[RabbitMQ] Failed to connect/create channel: $e'); @@ -76,7 +82,10 @@ Future connectRabbitMQ() async { } /// Wrapper: executa ação no canal com retry 1x se o canal morrer -Future _withChannel(Future Function(Channel ch) action, {required String op}) async { +Future _withChannel( + Future Function(Channel ch) action, { + required String op, +}) async { Future attempt() async { final ch = await connectRabbitMQ(); return action(ch); @@ -85,19 +94,25 @@ Future _withChannel(Future Function(Channel ch) action, {required Strin try { return await attempt(); } on ChannelException catch (e) { - stderr.writeln('[RabbitMQ] ChannelException during $op: $e. Recreating channel and retrying once...'); + stderr.writeln( + '[RabbitMQ] ChannelException during $op: $e. Recreating channel and retrying once...', + ); await _invalidateChannel(reason: 'ChannelException:$e'); final result = await attempt(); stdout.writeln('[RabbitMQ] $op succeeded after channel recreation.'); return result; } on IOException catch (e) { - stderr.writeln('[RabbitMQ] IOException during $op: $e. Recreating channel and retrying once...'); + stderr.writeln( + '[RabbitMQ] IOException during $op: $e. Recreating channel and retrying once...', + ); await _invalidateChannel(reason: 'IOException:$e'); final result = await attempt(); stdout.writeln('[RabbitMQ] $op succeeded after channel recreation.'); return result; } on StateError catch (e) { - stderr.writeln('[RabbitMQ] StateError during $op: $e. Recreating channel and retrying once...'); + stderr.writeln( + '[RabbitMQ] StateError during $op: $e. Recreating channel and retrying once...', + ); await _invalidateChannel(reason: 'StateError:$e'); final result = await attempt(); stdout.writeln('[RabbitMQ] $op succeeded after channel recreation.'); @@ -112,14 +127,20 @@ Future publishEvent( T eventData, ) async { return _withChannel((ch) async { - final exchange = await ch.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); + final exchange = await ch.exchange( + EXCHANGE_NAME, + ExchangeType.TOPIC, + durable: true, + ); final body = utf8.encode(jsonEncode(eventData)); final props = MessageProperties()..deliveryMode = 2; // persistente exchange.publish(body, routingKey, properties: props); - stdout.writeln("[PUBLISHER] Topic '$routingKey' published to '$EXCHANGE_NAME': $eventData"); + stdout.writeln( + "[PUBLISHER] Topic '$routingKey' published to '$EXCHANGE_NAME': $eventData", + ); return true; }, op: 'publishEvent'); } @@ -133,7 +154,11 @@ Future consumeEvents( ) async { await _withChannel((ch) async { // Declarar exchange (assert) como no TS - final exchange = await ch.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); + final exchange = await ch.exchange( + EXCHANGE_NAME, + ExchangeType.TOPIC, + durable: true, + ); final queue = await ch.queue( queueName, @@ -147,7 +172,9 @@ Future consumeEvents( // ✅ Correção: bind usando o objeto Exchange, não a string await queue.bind(exchange, bindingKey); - stdout.writeln("[CONSUMER] Listening on queue '$queueName' with binding '$bindingKey'"); + stdout.writeln( + "[CONSUMER] Listening on queue '$queueName' with binding '$bindingKey'", + ); final consumer = await queue.consume(noAck: false); @@ -156,7 +183,9 @@ Future consumeEvents( bool ackedOrRejected = false; try { final payload = jsonDecode(msg.payloadAsString) as T; - stdout.writeln('[CONSUMER] Received (${msg.routingKey ?? bindingKey}): $payload'); + stdout.writeln( + '[CONSUMER] Received (${msg.routingKey ?? bindingKey}): $payload', + ); await callback(payload); @@ -167,13 +196,17 @@ Future consumeEvents( } catch (err) { stderr.writeln('[CONSUMER] Error processing message: $err'); if (!ackedOrRejected) { - msg.reject(false); // nack sem requeue (equivalente ao TS: nack(msg, false, false)) + msg.reject( + false, + ); // nack sem requeue (equivalente ao TS: nack(msg, false, false)) ackedOrRejected = true; } } }, onError: (err) async { - stderr.writeln('[CONSUMER] Stream error: $err. Marking channel as dead.'); + stderr.writeln( + '[CONSUMER] Stream error: $err. Marking channel as dead.', + ); await _invalidateChannel(reason: 'consumer.onError:$err'); }, onDone: () async { @@ -210,7 +243,100 @@ Future closeRabbitMQConnection() async { } } +Future fetchDoorCodeFromCatalog( + String workspaceId, { + Duration timeout = const Duration(seconds: 5), +}) async { + final channel = await connectRabbitMQ(); + final exchange = await channel.exchange( + EXCHANGE_NAME, + ExchangeType.TOPIC, + durable: true, + ); + final replyQueue = await channel.queue('', exclusive: true, autoDelete: true); + final correlationId = const Uuid().v4(); + final completer = Completer(); + final consumer = await replyQueue.consume(noAck: false); + late final StreamSubscription subscription; + + subscription = consumer.listen( + (AmqpMessage message) { + try { + if (message.properties?.corellationId != correlationId) { + message.reject(false); + return; + } + + final decoded = jsonDecode(message.payloadAsString); + String? doorCode; + if (decoded is Map) { + final rawDoorCode = + decoded['doorCodeHash'] ?? decoded['doorCode'] ?? decoded['code']; + if (rawDoorCode is String && rawDoorCode.isNotEmpty) { + doorCode = rawDoorCode; + } + } else if (decoded is String && decoded.isNotEmpty) { + doorCode = decoded; + } + + message.ack(); + if (!completer.isCompleted) { + completer.complete(doorCode); + } + subscription.cancel(); + } catch (error) { + message.reject(false); + if (!completer.isCompleted) { + completer.completeError(error); + } + } + }, + onError: (error) { + if (!completer.isCompleted) { + completer.completeError(error); + } + }, + onDone: () { + if (!completer.isCompleted) { + completer.completeError( + StateError('reply queue closed before receiving response'), + ); + } + }, + cancelOnError: false, + ); + + final payload = { + 'eventType': 'CatalogoDoorCodeRequest', + 'payload': {'workspaceId': workspaceId}, + }; + + final properties = MessageProperties() + ..replyTo = replyQueue.name + ..corellationId = correlationId + ..contentType = 'application/json' + ..deliveryMode = 1; + + exchange.publish( + utf8.encode(jsonEncode(payload)), + 'catalogo.door-code.request', + properties: properties, + ); + + final timer = Timer(timeout, () { + if (!completer.isCompleted) { + completer.completeError(TimeoutException('Door code fetch timed out')); + } + }); + try { + return await completer.future; + } finally { + timer.cancel(); + await subscription.cancel(); + await replyQueue.delete(); + } +} Future verifyDoorCodeWithCatalog({ required String workspaceId, @@ -218,13 +344,16 @@ Future verifyDoorCodeWithCatalog({ Duration timeout = const Duration(seconds: 5), }) async { final channel = await connectRabbitMQ(); - final exchange = - await channel.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); + final exchange = await channel.exchange( + EXCHANGE_NAME, + ExchangeType.TOPIC, + durable: true, + ); final replyQueue = await channel.queue('', exclusive: true, autoDelete: true); final correlationId = const Uuid().v4(); final completer = Completer(); final consumer = await replyQueue.consume(noAck: false); - StreamSubscription? subscription; + late final StreamSubscription subscription; subscription = consumer.listen( (AmqpMessage message) { @@ -237,7 +366,11 @@ Future verifyDoorCodeWithCatalog({ final decoded = jsonDecode(message.payloadAsString); bool result = false; if (decoded is Map) { - result = decoded['valid'] == true; + final dynamic candidate = + decoded['doorVerifiedHash'] ?? decoded['valid']; + if (candidate is bool) { + result = candidate; + } } else if (decoded is bool) { result = decoded; } @@ -246,7 +379,7 @@ Future verifyDoorCodeWithCatalog({ if (!completer.isCompleted) { completer.complete(result); } - subscription?.cancel(); + subscription.cancel(); } catch (error) { message.reject(false); if (!completer.isCompleted) { @@ -271,10 +404,7 @@ Future verifyDoorCodeWithCatalog({ final payload = { 'eventType': 'CatalogoVerifyDoorCodeRequest', - 'payload': { - 'workspaceId': workspaceId, - 'doorCode': doorCode, - }, + 'payload': {'workspaceId': workspaceId, 'doorCode': doorCode}, }; final properties = MessageProperties() @@ -307,13 +437,18 @@ Future verifyDoorCodeWithCatalog({ } const String _DELAY_EXCHANGE = 'aluguel.delay.ex'; // exchange de delay (direct) -const String _DELAY_QUEUE = 'aluguel.delay.q'; // fila de delay -const String _DELAY_RK = 'aluguel.expire'; // routing key para entrar no delay -const String _EXPIRED_RK = 'aluguel.expired'; // routing key de saída (vai para EXCHANGE_NAME) +const String _DELAY_QUEUE = 'aluguel.delay.q'; // fila de delay +const String _DELAY_RK = 'aluguel.expire'; // routing key para entrar no delay +const String _EXPIRED_RK = + 'aluguel.expired'; // routing key de saída (vai para EXCHANGE_NAME) Future _ensureDelayInfra(Channel ch) async { // Exchange/Fila de delay: quando a msg expira, vai para o exchange principal (EXCHANGE_NAME) - final delayEx = await ch.exchange(_DELAY_EXCHANGE, ExchangeType.DIRECT, durable: true); + final delayEx = await ch.exchange( + _DELAY_EXCHANGE, + ExchangeType.DIRECT, + durable: true, + ); final delayQ = await ch.queue( _DELAY_QUEUE, @@ -331,7 +466,7 @@ Future _ensureDelayInfra(Channel ch) async { /// Se `endDateMs` já passou, publica imediatamente em `EXCHANGE_NAME` com routing key `_EXPIRED_RK`. Future scheduleAluguelExpiration({ required String eventType, - required Map payload + required Map payload, }) async { final ch = await connectRabbitMQ(); final now = DateTime.now().toUtc().millisecondsSinceEpoch; @@ -339,28 +474,38 @@ Future scheduleAluguelExpiration({ if (delayMs <= 0) { // já venceu: publica direto no exchange principal - final mainEx = await ch.exchange(EXCHANGE_NAME, ExchangeType.TOPIC, durable: true); - final msg = { - 'eventType': eventType, - 'payload': payload - }; + final mainEx = await ch.exchange( + EXCHANGE_NAME, + ExchangeType.TOPIC, + durable: true, + ); + final msg = {'eventType': eventType, 'payload': payload}; final props = MessageProperties()..deliveryMode = 2; - mainEx.publish(utf8.encode(jsonEncode(msg)), _EXPIRED_RK, properties: props); - stdout.writeln("[SCHEDULER] Expired immediately -> $_EXPIRED_RK payload=$msg"); + mainEx.publish( + utf8.encode(jsonEncode(msg)), + _EXPIRED_RK, + properties: props, + ); + stdout.writeln( + "[SCHEDULER] Expired immediately -> $_EXPIRED_RK payload=$msg", + ); return; } await _ensureDelayInfra(ch); - final delayEx = await ch.exchange(_DELAY_EXCHANGE, ExchangeType.DIRECT, durable: true); + final delayEx = await ch.exchange( + _DELAY_EXCHANGE, + ExchangeType.DIRECT, + durable: true, + ); final props = MessageProperties() ..deliveryMode = 2 - ..expiration = delayMs.toString(); + ..expiration = delayMs.toString(); - final data = { - 'eventType': eventType, - 'payload': payload - }; + final data = {'eventType': eventType, 'payload': payload}; delayEx.publish(utf8.encode(jsonEncode(data)), _DELAY_RK, properties: props); - stdout.writeln("[SCHEDULER] Scheduled in ${delayMs}ms -> $_DELAY_EXCHANGE:$_DELAY_RK payload=$payload"); + stdout.writeln( + "[SCHEDULER] Scheduled in ${delayMs}ms -> $_DELAY_EXCHANGE:$_DELAY_RK payload=$payload", + ); } diff --git a/back/microsservicos/aluguel/lib/presentation/events/event_handler.dart b/back/microsservicos/aluguel/lib/presentation/events/event_handler.dart index 6f140cd..47fb6de 100644 --- a/back/microsservicos/aluguel/lib/presentation/events/event_handler.dart +++ b/back/microsservicos/aluguel/lib/presentation/events/event_handler.dart @@ -1,11 +1,9 @@ import 'dart:io'; import 'package:aluguel_dart/application/update_aluguel_usecase.dart'; -import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq_event.dart'; import 'package:aluguel_dart/shared/environments.dart'; - typedef EventHandlerFn = Future Function(dynamic payload); final Map eventsFunctions = { @@ -13,29 +11,61 @@ final Map eventsFunctions = { final aluguelID = payload["aluguel"]["id"]; final people = payload["aluguel"]['people']; final availableSpots = payload['availableSpots']; - Aluguel updatedAluguel; - - if(people <= availableSpots) { - updatedAluguel = await UpdateAluguelUsecase(repository: Environments.getAluguelRepo()).call(aluguelID, status: 'CONFIRMED'); - final aluguelConfirmed = RabbitMQEvent(eventType: 'AluguelConfirmed', payload: updatedAluguel.toJson()); - await publishEvent('aluguel.updated', aluguelConfirmed.toJson()); - await scheduleAluguelExpiration(eventType: 'AluguelExpired', payload: updatedAluguel.toJson()); - } else { - updatedAluguel = await UpdateAluguelUsecase(repository: Environments.getAluguelRepo()).call(aluguelID, status: 'CANCELED'); + try { + if (people <= availableSpots) { + final updatedAluguel = await UpdateAluguelUsecase( + repository: Environments.getAluguelRepo(), + ).call(aluguelID, status: 'CONFIRMED'); + final aluguelConfirmed = RabbitMQEvent( + eventType: 'AluguelConfirmed', + payload: updatedAluguel.toJson(), + ); + await publishEvent('aluguel.updated', aluguelConfirmed.toJson()); + await scheduleAluguelExpiration( + eventType: 'AluguelExpired', + payload: updatedAluguel.toJson(), + ); + } else { + await UpdateAluguelUsecase( + repository: Environments.getAluguelRepo(), + ).call(aluguelID, status: 'CANCELED'); + } + } catch (error) { + print('[AvaiabilityChecked] Failed to handle "$aluguelID": $error'); } }, 'AvaiabilityFree': (payload) async { final aluguelID = payload["aluguel"]["bookingID"]; - Aluguel updatedAluguel; - updatedAluguel = await UpdateAluguelUsecase(repository: Environments.getAluguelRepo()).call(aluguelID, status: 'COMPLETED'); - final aluguelCompleted = RabbitMQEvent(eventType: 'AluguelCompleted', payload: updatedAluguel.toJson()); - await publishEvent('aluguel.updated', aluguelCompleted.toJson()); - } + final repo = Environments.getAluguelRepo(); + try { + final existing = await repo.getAluguel(aluguelID); + if (existing == null) { + print( + '[AvaiabilityFree] Ignoring event. Aluguel "$aluguelID" not found.', + ); + return; + } + + final updatedAluguel = await UpdateAluguelUsecase( + repository: repo, + ).call(aluguelID, status: 'COMPLETED'); + final aluguelCompleted = RabbitMQEvent( + eventType: 'AluguelCompleted', + payload: updatedAluguel.toJson(), + ); + await publishEvent('aluguel.updated', aluguelCompleted.toJson()); + } catch (error) { + print('[AvaiabilityFree] Failed to handle "$aluguelID": $error'); + } + }, }; Future eventHandler(Map event) async { try { - RabbitMQEvent convertedEvent = RabbitMQEvent(eventType: event['eventType'], payload: event['payload']); + RabbitMQEvent convertedEvent = RabbitMQEvent( + eventType: event['eventType'], + payload: event['payload'], + ); final String eventType = convertedEvent.eventType; final dynamic payload = convertedEvent.payload; eventsFunctions[eventType]!(payload); diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart index c5fd3cc..79cf164 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart @@ -50,7 +50,10 @@ class GetDoorHashController { headers: {'content-type': 'application/json'}, ); } catch (e) { - return jsonServerError({'error': 'internal_error', 'detail': e.toString()}); + return jsonServerError({ + 'error': 'internal_error', + 'detail': e.toString(), + }); } } } diff --git a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts index 29142c3..82bfa63 100644 --- a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts @@ -1,4 +1,4 @@ -import crypto, { randomInt } from "crypto"; +import { randomInt } from "crypto"; import { CreateCatalogoUsecase } from "./create_catalogo_usecase"; import { Request, Response } from "express"; import { Catalogo } from "../../shared/domain/interfaces"; @@ -70,7 +70,7 @@ export class CreateCatalogoController { // doorCodeHash = trimmed.toLowerCase(); // } - const doorCodeHash = String(Math.floor(Math.random() * 100000)).padStart(5, '0'); + const doorCodeHash = randomInt(0, 100000).toString().padStart(5, '0'); const roomProps = { ...body, diff --git a/back/microsservicos/catalogo/index.ts b/back/microsservicos/catalogo/index.ts index fcb75fb..80a02c0 100644 --- a/back/microsservicos/catalogo/index.ts +++ b/back/microsservicos/catalogo/index.ts @@ -2,7 +2,7 @@ import { Environments } from './shared/environments' import { startQueue } from './shared/handlers/event/eventsHandler' import { App } from './shared/handlers/server/app' import { closeRabbitMQConnection } from './shared/infra/clients/rabbitmq/rabbitmq' -import { startDoorCodeVerificationConsumer } from './shared/infra/clients/rabbitmq/doorCodeVerificationConsumer' +import { startDoorCodeFetchConsumer, startDoorCodeVerificationConsumer } from './shared/infra/clients/rabbitmq/doorCodeVerificationConsumer' const port = Environments.getEnvs().port @@ -11,6 +11,7 @@ new App().server.listen(port, async () => { try { await startQueue() await startDoorCodeVerificationConsumer() + await startDoorCodeFetchConsumer() } catch (error) { console.error('Failed to start RabbitMQ consumers', error) process.exit(1) diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts index f7533f3..b324633 100644 --- a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts @@ -1,11 +1,11 @@ -import crypto from 'crypto'; - import type { ConsumeMessage } from 'amqplib'; import { Environments } from '../../../environments'; import { connectRabbitMQ, EXCHANGE_NAME } from './rabbitmq'; const DOOR_CODE_RPC_QUEUE = 'catalogo.verify-door-code.rpc'; const DOOR_CODE_REQUEST_RK = 'catalogo.verify-door-code.request'; +const DOOR_CODE_FETCH_QUEUE = 'catalogo.door-code.rpc'; +const DOOR_CODE_FETCH_RK = 'catalogo.door-code.request'; export const startDoorCodeVerificationConsumer = async (): Promise => { const channel = await connectRabbitMQ(); @@ -60,12 +60,7 @@ export const startDoorCodeVerificationConsumer = async (): Promise => { const storedHash = catalogo?.doorCodeHash; if (storedHash) { - const computedHash = crypto - .createHash('sha256') - .update(doorCode.trim()) - .digest('hex'); - - valid = computedHash === storedHash; + valid = storedHash.trim() === doorCode.trim(); } } catch (error) { console.error( @@ -104,3 +99,93 @@ export const startDoorCodeVerificationConsumer = async (): Promise => { } }); }; + +export const startDoorCodeFetchConsumer = async (): Promise => { + const channel = await connectRabbitMQ(); + + await channel.assertExchange(EXCHANGE_NAME, 'topic', { durable: true }); + + const { queue } = await channel.assertQueue(DOOR_CODE_FETCH_QUEUE, { + durable: false, + exclusive: false, + autoDelete: false, + }); + + await channel.bindQueue(queue, EXCHANGE_NAME, DOOR_CODE_FETCH_RK); + + await channel.consume(queue, async (msg: ConsumeMessage | null) => { + if (!msg) { + return; + } + + try { + const { replyTo, correlationId } = msg.properties; + + if (!replyTo || !correlationId) { + console.warn( + '[DoorCodeFetch] Missing replyTo or correlationId. Ignoring message.', + ); + channel.ack(msg); + return; + } + + let parsedPayload: any; + try { + parsedPayload = JSON.parse(msg.content.toString()); + } catch (error) { + console.error( + '[DoorCodeFetch] Failed to parse message payload:', + error, + ); + parsedPayload = {}; + } + + const payload = parsedPayload?.payload ?? parsedPayload; + const workspaceId = payload?.workspaceId; + + let doorCodeHash: string | null = null; + + if (workspaceId) { + try { + const repo = Environments.getCatalogoRepo(); + const catalogo = repo.getCatalogo(workspaceId); + doorCodeHash = catalogo?.doorCodeHash ?? null; + } catch (error) { + console.error( + '[DoorCodeFetch] Error while retrieving door code:', + error, + ); + } + } + + channel.sendToQueue( + replyTo, + Buffer.from(JSON.stringify({ doorCodeHash })), + { + correlationId, + contentType: 'application/json', + }, + ); + } catch (error) { + console.error( + '[DoorCodeFetch] Unexpected error handling request:', + error, + ); + const { replyTo, correlationId } = msg.properties; + if (replyTo && correlationId) { + channel.sendToQueue( + replyTo, + Buffer.from( + JSON.stringify({ doorCodeHash: null, error: 'internal_error' }), + ), + { + correlationId, + contentType: 'application/json', + }, + ); + } + } finally { + channel.ack(msg); + } + }); +}; From e652593e6f3edb88cf57c81d5753c2d274a88b92 Mon Sep 17 00:00:00 2001 From: Victor Gasperi Date: Mon, 3 Nov 2025 17:49:32 -0300 Subject: [PATCH 16/17] fix: arrumando as rotas de codigo --- .../application/update_aluguel_usecase.dart | 31 +++-------------- .../application/verify_door_code_usecase.dart | 13 +++---- .../repositories/aluguel_repository.dart | 2 ++ .../clients/rabbitmq/rabbitmq.dart | 8 ++--- .../repositories/aluguel_repository_mock.dart | 13 +++++++ .../controllers/get_door_hash_controller.dart | 8 +---- .../update_aluguel_controller.dart | 5 --- .../create_catalogo_controller.ts | 34 +++---------------- .../catalogo/shared/domain/interfaces.ts | 2 +- .../rabbitmq/doorCodeVerificationConsumer.ts | 4 +-- .../infra/repo/catalogoRepositoryMock.ts | 4 +-- 11 files changed, 38 insertions(+), 86 deletions(-) diff --git a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart index 9747463..cece595 100644 --- a/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/update_aluguel_usecase.dart @@ -1,6 +1,7 @@ +import 'dart:math'; + import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; -import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; class UpdateAluguelUsecase { final AluguelRepository repository; @@ -14,7 +15,6 @@ class UpdateAluguelUsecase { int? people, double? finalPrice, String? status, - String? doorCode, }) async { if (startDate != null && endDate != null && endDate < startDate) { throw StateError('endDate não pode ser menor que startDate.'); @@ -26,35 +26,14 @@ class UpdateAluguelUsecase { throw StateError('finalPrice não pode ser negativo.'); } - String? desiredDoorCode = doorCode; + String? desiredDoorCode = Random().nextInt(100000).toString().padLeft(5, '0'); if (status != null && - status.toUpperCase() == 'CONFIRMED' && - doorCode == null) { + status.toUpperCase() == 'CONFIRMED') { final current = await repository.getAluguel(id); if (current == null) { throw StateError('aluguel_not_found'); } - - final fetchedDoorCode = await fetchDoorCodeFromCatalog( - current.workspaceId, - ); - if (fetchedDoorCode == null || fetchedDoorCode.isEmpty) { - throw StateError('door_code_not_found'); - } - desiredDoorCode = fetchedDoorCode; - } - - String? sanitizedDoorCode; - if (desiredDoorCode != null) { - final trimmedDoorCode = desiredDoorCode.trim(); - if (trimmedDoorCode.isEmpty) { - throw StateError('doorCode nǜo pode ser vazio.'); - } - if (!RegExp(r'^\d{5}$').hasMatch(trimmedDoorCode)) { - throw StateError('doorCode deve conter exatamente 5 d��gitos.'); - } - sanitizedDoorCode = trimmedDoorCode; } return repository.updateAluguel( @@ -64,7 +43,7 @@ class UpdateAluguelUsecase { people: people, finalPrice: finalPrice, status: status, - doorCode: sanitizedDoorCode, + doorCode: desiredDoorCode, ); } } diff --git a/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart index 3531990..e128084 100644 --- a/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart @@ -7,17 +7,13 @@ class VerifyDoorCodeUsecase { VerifyDoorCodeUsecase({required this.repository}); Future call({ - required String aluguelId, - required String plainDoorCode, + required String doorCode, }) async { - if (!RegExp(r'^\d{5}$').hasMatch(plainDoorCode)) { - throw StateError('doorCode deve conter exatamente 5 digitos.'); - } - final aluguel = await repository.getAluguel(aluguelId); + final aluguel = await repository.getDoorAluguel(doorCode); if (aluguel == null) { - throw StateError('aluguel_not_found'); + throw StateError('Door code not found'); } if (aluguel.status.toUpperCase() != 'CONFIRMED') { @@ -30,8 +26,7 @@ class VerifyDoorCodeUsecase { } return await verifyDoorCodeWithCatalog( - workspaceId: aluguel.workspaceId, - doorCode: plainDoorCode, + aluguel: aluguel ); } } diff --git a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart index 653c297..2d74091 100644 --- a/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart +++ b/back/microsservicos/aluguel/lib/domain/repositories/aluguel_repository.dart @@ -27,4 +27,6 @@ abstract class AluguelRepository { Future deleteAluguel(String id); + + Future getDoorAluguel(String doorCode); } diff --git a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart index ddbc0b5..8a223ea 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:dart_amqp/dart_amqp.dart'; import 'package:uuid/uuid.dart'; import 'package:aluguel_dart/shared/environments.dart'; @@ -339,8 +340,7 @@ Future fetchDoorCodeFromCatalog( } Future verifyDoorCodeWithCatalog({ - required String workspaceId, - required String doorCode, + required Aluguel aluguel, Duration timeout = const Duration(seconds: 5), }) async { final channel = await connectRabbitMQ(); @@ -403,8 +403,8 @@ Future verifyDoorCodeWithCatalog({ ); final payload = { - 'eventType': 'CatalogoVerifyDoorCodeRequest', - 'payload': {'workspaceId': workspaceId, 'doorCode': doorCode}, + 'eventType': 'CatalogoRequestDoorSerial', + 'payload': aluguel.toJson(), }; final properties = MessageProperties() diff --git a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart index 37151f5..8ff6b3b 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/repositories/aluguel_repository_mock.dart @@ -96,4 +96,17 @@ class AluguelRepositoryMock implements AluguelRepository { throw StateError('Aluguel com id "$id" não encontrado para exclusão.'); } } + + @override + Future getDoorAluguel(String doorCode) async { + for (var aluguel in store.values) { + + if (aluguel.doorCode == doorCode) { + return aluguel; + } + + } + return null; + } + } diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart index 79cf164..60dde92 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart @@ -20,19 +20,13 @@ class GetDoorHashController { final data = jsonDecode(body); - final aluguelId = (data['aluguelId'] ?? data['bookingId'])?.toString(); final doorCode = data['doorCode']?.toString(); - - if (aluguelId == null || aluguelId.isEmpty) { - throw AppFailure('aluguelId_required'); - } if (doorCode == null || doorCode.isEmpty) { throw AppFailure('doorCode_required'); } final isValid = await verifyDoorCodeUsecase.call( - aluguelId: aluguelId, - plainDoorCode: doorCode, + doorCode: doorCode, ); return jsonOk({'valid': isValid}); diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart index 1e6e667..1285182 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/update_aluguel_controller.dart @@ -29,7 +29,6 @@ class UpdateAluguelController { final int? people = data['people']; final num? finalPrice = data['finalPrice']; final String? status = data['status']; - final String? doorCode = data['doorCode']; if (startDate != null && endDate != null && endDate <= startDate) { throw AppFailure('endDate_must_be_greater_than_startDate'); @@ -40,9 +39,6 @@ class UpdateAluguelController { if (finalPrice != null && finalPrice <= 0) { throw AppFailure('finalPrice_must_be_positive'); } - if (doorCode != null && doorCode.isEmpty) { - throw AppFailure('doorCode_cannot_be_empty'); - } final aluguelAtualizado = await updateAluguelUsecase.call( id.toString(), @@ -51,7 +47,6 @@ class UpdateAluguelController { people: people, finalPrice: finalPrice?.toDouble(), status: status, - doorCode: doorCode, ); return jsonOk(aluguelAtualizado.toJson()); diff --git a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts index 82bfa63..6b9a86a 100644 --- a/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts +++ b/back/microsservicos/catalogo/app/create_catalogo/create_catalogo_controller.ts @@ -30,12 +30,8 @@ export class CreateCatalogoController { throw new Error("Missing catalogo price"); if (body.capacity === undefined) throw new Error("Missing catalogo capacity"); - - // const { - // doorCode, - // doorCodeHash: providedDoorCodeHash, - // ...restBody - // } = body; + if (body.doorSerial === undefined) + throw new Error("Missing door serial") const price = typeof body.price === "string" ? Number(body.price) : body.price; @@ -48,29 +44,7 @@ export class CreateCatalogoController { ? [body.comodities] : []; - // let doorCodeHash: string | undefined = providedDoorCodeHash; - // const rawDoorInput: unknown = doorCode ?? providedDoorCodeHash; - - // if (rawDoorInput !== undefined) { - // if (typeof rawDoorInput !== "string") { - // throw new Error("doorCode must be a string"); - // } - // const trimmed = rawDoorInput.trim(); - - // if (trimmed.length === 0) { - // throw new Error("doorCode cannot be empty"); - // } - // if (trimmed.length !== 5) { - // throw new Error("doorCode must be exactly 5 characters"); - // } - // if (!/^[0-9]+$/.test(trimmed)) { - // throw new Error("doorCode must be numeric"); - // } - - // doorCodeHash = trimmed.toLowerCase(); - // } - - const doorCodeHash = randomInt(0, 100000).toString().padStart(5, '0'); + const doorSerial = body.doorSerial const roomProps = { ...body, @@ -78,7 +52,7 @@ export class CreateCatalogoController { pictures: [], price, capacity, - doorCodeHash, + doorSerial, } as Catalogo; const createdRoom = this.usecase.execute(roomProps); diff --git a/back/microsservicos/catalogo/shared/domain/interfaces.ts b/back/microsservicos/catalogo/shared/domain/interfaces.ts index 01c5658..0251fd3 100644 --- a/back/microsservicos/catalogo/shared/domain/interfaces.ts +++ b/back/microsservicos/catalogo/shared/domain/interfaces.ts @@ -7,5 +7,5 @@ export interface Catalogo { pictures: string[] price: number capacity: number - doorCodeHash: string + doorSerial: string } diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts index b324633..bee928b 100644 --- a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts @@ -57,7 +57,7 @@ export const startDoorCodeVerificationConsumer = async (): Promise => { try { const repo = Environments.getCatalogoRepo(); const catalogo = repo.getCatalogo(workspaceId); - const storedHash = catalogo?.doorCodeHash; + const storedHash = catalogo?.doorSerial; if (storedHash) { valid = storedHash.trim() === doorCode.trim(); @@ -149,7 +149,7 @@ export const startDoorCodeFetchConsumer = async (): Promise => { try { const repo = Environments.getCatalogoRepo(); const catalogo = repo.getCatalogo(workspaceId); - doorCodeHash = catalogo?.doorCodeHash ?? null; + doorCodeHash = catalogo?.doorSerial ?? null; } catch (error) { console.error( '[DoorCodeFetch] Error while retrieving door code:', diff --git a/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts b/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts index cb9b60d..951031d 100644 --- a/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts +++ b/back/microsservicos/catalogo/shared/infra/repo/catalogoRepositoryMock.ts @@ -33,7 +33,7 @@ export class CatalogoRepositoryMock implements CatalogoRepository { pictures: props.pictures, price: props.price, capacity: props.capacity, - doorCodeHash: props.doorCodeHash + doorSerial: props.doorSerial } this.baseCatalogo[id] = room @@ -57,7 +57,7 @@ export class CatalogoRepositoryMock implements CatalogoRepository { if(props.pictures && props.pictures.length > 0) room_to_update.pictures = props.pictures if(props.price) room_to_update.price = props.price if(props.capacity) room_to_update.capacity = props.capacity - if(props.doorCodeHash) room_to_update.doorCodeHash = props.doorCodeHash + if(props.doorSerial) room_to_update.doorSerial = props.doorSerial return room_to_update From a698078c5c350d5cf1ae413444d3ac63628d252e Mon Sep 17 00:00:00 2001 From: Lucas Galhardo Date: Mon, 3 Nov 2025 18:17:52 -0300 Subject: [PATCH 17/17] =?UTF-8?q?feat:=20refatorar=20verifica=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20c=C3=B3digo=20de=20porta=20e=20atualizar=20resposta=20d?= =?UTF-8?q?o=20consumidor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/verify_door_code_usecase.dart | 51 +++++++-- .../clients/rabbitmq/rabbitmq.dart | 104 +----------------- .../controllers/get_door_hash_controller.dart | 17 ++- .../rabbitmq/doorCodeVerificationConsumer.ts | 24 ++-- 4 files changed, 70 insertions(+), 126 deletions(-) diff --git a/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart index e128084..214d099 100644 --- a/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart +++ b/back/microsservicos/aluguel/lib/application/verify_door_code_usecase.dart @@ -1,3 +1,4 @@ +import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:aluguel_dart/domain/repositories/aluguel_repository.dart'; import 'package:aluguel_dart/infrastructure/clients/rabbitmq/rabbitmq.dart'; @@ -6,27 +7,55 @@ class VerifyDoorCodeUsecase { VerifyDoorCodeUsecase({required this.repository}); - Future call({ + Future call({ required String doorCode, }) async { + final normalizedDoorCode = doorCode.trim(); - final aluguel = await repository.getDoorAluguel(doorCode); - - if (aluguel == null) { - throw StateError('Door code not found'); + if (!RegExp(r'^\d{5}$').hasMatch(normalizedDoorCode)) { + throw StateError('door code invalid'); } - if (aluguel.status.toUpperCase() != 'CONFIRMED') { - return false; + final allAlugueis = await repository.getAllAluguel(); + + if (allAlugueis == null || allAlugueis.isEmpty) { + throw StateError('door code not found'); } final nowEpoch = DateTime.now().millisecondsSinceEpoch ~/ 1000; - if (nowEpoch < aluguel.startDate || nowEpoch > aluguel.endDate) { - return false; + + Aluguel? matchingAluguel; + + for (final aluguel in allAlugueis.values) { + final storedDoor = aluguel.doorCode?.trim(); + if (storedDoor == null || storedDoor.isEmpty) { + continue; + } + if (storedDoor != normalizedDoorCode) { + continue; + } + if (aluguel.status.toUpperCase() != 'CONFIRMED') { + continue; + } + if (nowEpoch < aluguel.startDate || nowEpoch > aluguel.endDate) { + continue; + } + matchingAluguel = aluguel; + break; + } + + if (matchingAluguel == null) { + throw StateError('door code not found'); } - return await verifyDoorCodeWithCatalog( - aluguel: aluguel + final doorSerial = await fetchDoorCodeFromCatalog( + matchingAluguel.workspaceId, ); + + if (doorSerial == null || doorSerial.trim().isEmpty) { + throw StateError('door serial not found'); + } + + return doorSerial.trim(); } } diff --git a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart index 8a223ea..1437645 100644 --- a/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart +++ b/back/microsservicos/aluguel/lib/infrastructure/clients/rabbitmq/rabbitmq.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; -import 'package:aluguel_dart/domain/entities/aluguel.dart'; import 'package:dart_amqp/dart_amqp.dart'; import 'package:uuid/uuid.dart'; import 'package:aluguel_dart/shared/environments.dart'; @@ -271,8 +270,10 @@ Future fetchDoorCodeFromCatalog( final decoded = jsonDecode(message.payloadAsString); String? doorCode; if (decoded is Map) { - final rawDoorCode = - decoded['doorCodeHash'] ?? decoded['doorCode'] ?? decoded['code']; + final rawDoorCode = decoded['doorSerial'] ?? + decoded['doorCodeHash'] ?? + decoded['doorCode'] ?? + decoded['code']; if (rawDoorCode is String && rawDoorCode.isNotEmpty) { doorCode = rawDoorCode; } @@ -339,103 +340,6 @@ Future fetchDoorCodeFromCatalog( } } -Future verifyDoorCodeWithCatalog({ - required Aluguel aluguel, - Duration timeout = const Duration(seconds: 5), -}) async { - final channel = await connectRabbitMQ(); - final exchange = await channel.exchange( - EXCHANGE_NAME, - ExchangeType.TOPIC, - durable: true, - ); - final replyQueue = await channel.queue('', exclusive: true, autoDelete: true); - final correlationId = const Uuid().v4(); - final completer = Completer(); - final consumer = await replyQueue.consume(noAck: false); - late final StreamSubscription subscription; - - subscription = consumer.listen( - (AmqpMessage message) { - try { - if (message.properties?.corellationId != correlationId) { - message.reject(false); - return; - } - - final decoded = jsonDecode(message.payloadAsString); - bool result = false; - if (decoded is Map) { - final dynamic candidate = - decoded['doorVerifiedHash'] ?? decoded['valid']; - if (candidate is bool) { - result = candidate; - } - } else if (decoded is bool) { - result = decoded; - } - - message.ack(); - if (!completer.isCompleted) { - completer.complete(result); - } - subscription.cancel(); - } catch (error) { - message.reject(false); - if (!completer.isCompleted) { - completer.completeError(error); - } - } - }, - onError: (error) { - if (!completer.isCompleted) { - completer.completeError(error); - } - }, - onDone: () { - if (!completer.isCompleted) { - completer.completeError( - StateError('reply queue closed before receiving response'), - ); - } - }, - cancelOnError: false, - ); - - final payload = { - 'eventType': 'CatalogoRequestDoorSerial', - 'payload': aluguel.toJson(), - }; - - final properties = MessageProperties() - ..replyTo = replyQueue.name - ..corellationId = correlationId - ..contentType = 'application/json' - ..deliveryMode = 1; - - exchange.publish( - utf8.encode(jsonEncode(payload)), - 'catalogo.verify-door-code.request', - properties: properties, - ); - - final timer = Timer(timeout, () { - if (!completer.isCompleted) { - completer.completeError( - TimeoutException('Door code verification timed out'), - ); - } - }); - - try { - return await completer.future; - } finally { - timer.cancel(); - await subscription.cancel(); - await replyQueue.delete(); - } -} - const String _DELAY_EXCHANGE = 'aluguel.delay.ex'; // exchange de delay (direct) const String _DELAY_QUEUE = 'aluguel.delay.q'; // fila de delay const String _DELAY_RK = 'aluguel.expire'; // routing key para entrar no delay diff --git a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart index 60dde92..bdf2447 100644 --- a/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart +++ b/back/microsservicos/aluguel/lib/presentation/http/controllers/get_door_hash_controller.dart @@ -25,18 +25,25 @@ class GetDoorHashController { throw AppFailure('doorCode_required'); } - final isValid = await verifyDoorCodeUsecase.call( + final doorSerial = await verifyDoorCodeUsecase.call( doorCode: doorCode, ); - return jsonOk({'valid': isValid}); + return jsonOk({'doorSerial': doorSerial}); } on AppFailure catch (e) { return jsonBadRequest({'error': e.message}); } on StateError catch (e) { - if (e.message == 'aluguel_not_found') { - return jsonNotFound({'error': e.message}); + final message = e.message; + if (message == 'door code not found') { + return jsonNotFound({'error': message}); } - return jsonBadRequest({'error': e.message}); + if (message == 'door serial not found') { + return jsonBadRequest({'error': message}); + } + if (message == 'door code invalid') { + return jsonBadRequest({'error': message}); + } + return jsonBadRequest({'error': message}); } on TimeoutException { return Response( 504, diff --git a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts index bee928b..92c4dd5 100644 --- a/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts +++ b/back/microsservicos/catalogo/shared/infra/clients/rabbitmq/doorCodeVerificationConsumer.ts @@ -51,16 +51,20 @@ export const startDoorCodeVerificationConsumer = async (): Promise => { const workspaceId = payload?.workspaceId; const doorCode: string | undefined = payload?.doorCode; - let valid = false; + let responseBody: any = { valid: false }; if (workspaceId && typeof doorCode === 'string') { try { const repo = Environments.getCatalogoRepo(); const catalogo = repo.getCatalogo(workspaceId); - const storedHash = catalogo?.doorSerial; - - if (storedHash) { - valid = storedHash.trim() === doorCode.trim(); + const storedSerial = catalogo?.doorSerial; + + if (storedSerial) { + const isValid = storedSerial.trim() === doorCode.trim(); + responseBody = { + valid: isValid, + doorSerial: storedSerial.trim(), + }; } } catch (error) { console.error( @@ -72,7 +76,7 @@ export const startDoorCodeVerificationConsumer = async (): Promise => { channel.sendToQueue( replyTo, - Buffer.from(JSON.stringify({ valid })), + Buffer.from(JSON.stringify(responseBody)), { correlationId, contentType: 'application/json', @@ -143,13 +147,13 @@ export const startDoorCodeFetchConsumer = async (): Promise => { const payload = parsedPayload?.payload ?? parsedPayload; const workspaceId = payload?.workspaceId; - let doorCodeHash: string | null = null; + let doorSerial: string | null = null; if (workspaceId) { try { const repo = Environments.getCatalogoRepo(); const catalogo = repo.getCatalogo(workspaceId); - doorCodeHash = catalogo?.doorSerial ?? null; + doorSerial = catalogo?.doorSerial ?? null; } catch (error) { console.error( '[DoorCodeFetch] Error while retrieving door code:', @@ -160,7 +164,7 @@ export const startDoorCodeFetchConsumer = async (): Promise => { channel.sendToQueue( replyTo, - Buffer.from(JSON.stringify({ doorCodeHash })), + Buffer.from(JSON.stringify({ doorSerial })), { correlationId, contentType: 'application/json', @@ -176,7 +180,7 @@ export const startDoorCodeFetchConsumer = async (): Promise => { channel.sendToQueue( replyTo, Buffer.from( - JSON.stringify({ doorCodeHash: null, error: 'internal_error' }), + JSON.stringify({ doorSerial: null, error: 'internal_error' }), ), { correlationId,