From 377f57ce2dc80d2ba10637eaeefb540f5164324e Mon Sep 17 00:00:00 2001 From: Romain Mallard Date: Sat, 24 Jan 2026 18:15:06 +0100 Subject: [PATCH] add hotel to user endpoint --- db/auth_copy_2.sqlite | Bin 73728 -> 73728 bytes db/auth_copy_2.sqlite-shm | Bin 32768 -> 32768 bytes db/auth_copy_2.sqlite-wal | Bin 531512 -> 41232 bytes src/utils/auth.rs | 97 ++++++++++++++++++++++++++++++++++++-- src/utils/routes.rs | 1 + 5 files changed, 94 insertions(+), 4 deletions(-) diff --git a/db/auth_copy_2.sqlite b/db/auth_copy_2.sqlite index c62e835b8a8e089a2ba725317c3879a1b14c6240..883fb23279e8e2e2de3fdae6751ee50a366af105 100644 GIT binary patch delta 1651 zcmbtTTWlLe6rEYG*SofNZxWKOW0N#i61k~UuN^0)u7sd@H>vA5jq^gqILS74oY?gv zj|LR#s2}~{(Q3sHR6xT=K}D3vQjz$8d<3bqJfuoU6(6KR1p#WILTUsm63nU6lkVLFzG zhsmPoBe4%aC1^^kN78C08qOx;YC_8Qh@UbgoOqFy-h)@5QaU3wh!^vvB`czs5;!F1 z0&-T(WSg|r>g@yL!D#=6p3d~lrUG zMlYG9HD1L za6WwgGe!$vI9pB$p%R4PCwL1k!*NjIAi3qeAXji4U_o^3X79C(C)^&JN+vY*^>=hE z{E|1E+JGjzomNX#6}2`SwN@*&3`2o=a8ckd;R3t?FB0e;a1ror@UoTX5XQ1YUa84mHdvH%x}C5pLW;u9(zWX}WFeQs1p@?bIqxDCINp80_! zdl@*r4)AVHyYYFAg@>!O?>4sr;2Ks~!35zG-Sa;}!fU}oj|v;P4@cGXJ& delta 2255 zcmb`JTa4pY8OQA;Gs#RYXJ&TG?Cf@CcGRHlOgh-HbCp=Nxj8rI;@p!$N4eNe;>3>Q zB#y&sx-(QfR7ma04?M7`E4Jr#ls6{KpR)|)DB)cnA zhR6Eo`ya{2-|u|-&N<)l&AYmrcXh8{S$_(GppBVXW~QCl^;^&3$WzdlUcG2G+98Yn zp~f5ozXErF3`on?%D(aUtKV4_jXyLV>mM2eM*F-?_tql%{Zn-JlzK+LiR17q(LuG= zp_`}I_w}dVef=haz^C?Ef9)Fl%AUGs+J%j(&-8WmYld$u?VpC8(N7OomSFWY{qw50 zdiSDf6WYilFx283^jH!*t%3JIT{j=7g3$t-)nj92`MPy^ld`FA8@JU@j5`__SFf0U zFym!4(WLqt0}Ag?W9FY|OghVLo#lJrn_$awd%Aa3v0NBIdT8q;bp`GV-D-=sR{QMq z_D&Nv>A;5&_!RsT{2hEaU4L*7s1N?VrhbYTW+P`1I0GMn`{3i*$h$y2d;W_Co#p2c z_yinG*IxLu`PQ57Ez!D@ltF!ar>Y*L-hblsaPGEnnw}kf1PHwrf%`Pmr={l6K;UTp zXwdB~uj{qfKKpum1=eoDLy7K7TJvmSpfv~rN0xUiyXG6F_h%{pg~@cXySxG!PEvW> z+I-&Kfb6dKd@YLQ^GLRybBZKKh5VE?>ay_&PoheujN&{O$u;`*8f|O3yM=hSkZ5M2 zT&~ndY;LyRQ1^~83#>W0y7U;m@dz!s+n#~98AQkO1a&p@O+@LCl(kDKDI$(V@J=n2 z2~=&t2%nAz#>l|yNXA=1J0ZFhei9a)x$*)HV2$=w7v3H6}r=9L3S>D|a72~!*#!;V#Z93W3eimHk zi~5EM!z zJqxh;WJj|C!Sh6~7&P-ttFOL1+%SV5LrZ{$z@Nak!7ss0K+kqq2Ebb?{n{Ja*@8{= zub%<+gLf}KJ72+N;}Ha2vi#KYwD}7r(Rc*^?tdHf>szNxvF8;n0EL?pPiv&S=K(1Vq_=jQ|)KR zFsA3~VjG~2@#BzOUP?M|q{CV_>Yk_V% z=~Ub2N_dlTk&5GXyvs&Pvwgx;#2(un#EEpJ+4mIMiD8(VkYge~saKSImX7r}DHTSL zD0LofKo{s}+*aw~@v%UcVq-x{p(5?iQr5iSouo>>W-1=Us#uIm)4m)dOL8$6j`>=g z(}9ggIocr<+K%&R{lNmw*u7Cwru`z}8R5y3CG!;xeqETkPi6z6gk zVKUA(1qa5q;^ndf#fk|f#hynmTNh}m*t5lo5;6#T9ca~uxgz0inza_n)n?p}*`vV$ zpI|G^a+w*Vkswy<@nxJqM!9$ZolKAxU-~~$FYPSQu}o~(i`Yk9n>|@*_Bky)}} zPb)%%M8%PBvDRoZ%@u@EfmFQxsE6!^`qe>}7OS}??JR~}wgiy~jY&S*YRL`E%{Uk@ zdWbg~)kBBF-8igz8SK#R@pxT0?(o)KHFfVs<aDRSReheOfzb>w~_keo;ovW9Y!95843;YB84g3Xs0Pcae9<}MycfSwF znd8BQ3p2HD%>Oxd*4JlxX>Dyu3&Y#nbG>q9u9q**Ri~S)Ry$XXX7=U$nfLPm46`fs Qx8PfU+=aLA{NaWF0ORGdCID^vK%%qV7ej9$hdhT(_bb=CLr~j gm5~|DV`T;E-~=+iv$C=QHF5!&KbaU=fRwZt0En781ONa4 literal 32768 zcmeI*$5ItR7>3~&1OybsfF84A4j51nOqg>P%n@_WIbVP)%cZx18@vS9R=M#qu-o!f zothd;ae4afs=s>XKRrG5J!juj_})r!R6x_aa5E-U-?y$$or66sU%&LWeHdu}Jn+7w z`D1_okHQew7x#|)4wj74e!Q*>H7rzBsOnHPp@#pi5n*n~T-SyBk(pjxUtIgIbIAPb zJ+)!3FL}PPq#yT7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgK#Bs>Ih$f^Gb<1TD(GZAo7u@e zdN|HSuJJ+{1(Fb`q>FC0u#5fla)L`-Pa?M=6^LhTt!4vT+06ltaFWa1kVSz+1gcoW zMz*nsgB;})SGdW`M6w$*b%AQuvWe~N%~futPGbIK1Zu+Bll6=Wr<~4UF7sK) zVwSLsHdfNXI(BfFGu-9@k9fi}UL_-A(DE0U$vhUYh*p-eoE5aQiibSrDbIP$oAL)R zVZs6poJ%;p(bE=a;ceOgrcYR)Hk?)8#8{e{z(gi9m06tU4)+o^F?uQjjr64w)tm}s z1nR=KO-3`0@f4WE6s9qo3*6;?W}UYRl%K#H;@6iP3Mim}0tzUgfC36Apnw7jD4>7> M3Mim}0x1dn1j%SlXaE2J diff --git a/db/auth_copy_2.sqlite-wal b/db/auth_copy_2.sqlite-wal index c3cb572571dbf9db608191fede097c2e9b834273..18c009b8d1dae713a9816fb59f44356ac966a272 100644 GIT binary patch delta 616 zcmdn7Lt(-pCJXa=wk8JMM-mJS0t_H9-S5NJ`68YkUDpFwb#vIh0}8Pti~A_YeGlI> zM|-=%XT~r5W(J&$%;Jot#i>QboIqt9$Vz|vInP`ASbhU9P>_{-4g-H2Uj*-Fo`u|V zHU`#kPw#VM=i_c-GT>rhZ1fLp%$|Ock4eeVveGc!FUYMhqoATF$JEf#q`R{SCh;iuMhP z&il5k*uHf84lZ^MguZmX-Y`{}34YrzNU<{u=%Z-qYOPy7r-k(?$VN_nVFv!E{3rR> z^H1fk=1=AK;@9IB-h43NC!e$=CmRDJqqr(3b4hA(iBU#=Nor2KaePi?e%|zFlI*v% zV2(_Pb!LtExI+~bFr55n82JD2f8+na|BC+!|2_U2{FnI8Z0EYnxQU;Km6?%|lM_U8 La7?e@V%Gows&>Sy literal 531512 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, +} + + +pub async fn add_hotel_user( + + State(state): State, + Extension(keys): Extension, + Json(payload): Json +) -> impl IntoResponse { + + let conn = match state.logs_pool.get() { + Ok(c) => c, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + "DB connection error").into_response() + }; + + let user_name: String= match conn.query_row( + "SELECT username FROM users WHERE id = ?1", + params![&payload.user_id], + |row| row.get(0), + ) { + Ok(name) => name, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + format!("user not found {e} ")).into_response() + }; + + let mut get_hotel_name_stmt = match conn.prepare( + "SELECT hotelname FROM hotels WHERE id = ?1" + ) { + Ok(stmt) => stmt, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + format!("could't prepare stmt for hotel : {e} ")).into_response() + }; + + let mut insert_hotel_link_stmt = match conn.prepare( + "INSERT INTO hotel_user_link + (user_id,hotel_id,username,hotelname) + VALUES (?1,?2,?3,?4)", + ) { + Ok(stmt) => stmt, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + format!("could't prepare stmt to insert hotel : {e} ")).into_response() + }; + + for &hotel_id in &payload.hotel_ids{ + + let hotel_name: String = match get_hotel_name_stmt.query_row( + params![hotel_id], + |row| row.get(0), + ) { + Ok(name) => name, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + format!("hotel not found {e} ")).into_response() + }; + + let add_link = match conn.execute( + "INSERT INTO hotel_user_link + (user_id,hotel_id,username,hotelname) + VALUES (?1,?2,?3,?4)", + params![ + payload.user_id, + hotel_id, + user_name, + hotel_name + ],) { + + Ok(_) => true, + Err(e) => return (StatusCode::INTERNAL_SERVER_ERROR, + format!("hotel not found {e} ")).into_response() + + }; + +//TODO: still need to build the add hotel to user here + + }; + + + + + + + return(StatusCode::OK, "goo").into_response(); +} + + + fn internal_error(err: E) -> (StatusCode, String) { (StatusCode::INTERNAL_SERVER_ERROR, format!("Internal error: {}", err)) } \ No newline at end of file diff --git a/src/utils/routes.rs b/src/utils/routes.rs index a1774c6..2c74457 100644 --- a/src/utils/routes.rs +++ b/src/utils/routes.rs @@ -30,6 +30,7 @@ pub fn utils_routes() -> Router { .route("/force_update_password", put(force_update_password)) .route("/get_hotels", get(get_hotel)) + .route("/add_hotel_user", put(add_hotel_user)) //.with_state(state)