From 99dde7460cb0e95bc4f339975131c9f680022e22 Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Sun, 5 Feb 2023 20:19:25 +0100 Subject: [PATCH] get_data --- .../database_helper.cpython-310.pyc | Bin 2060 -> 2775 bytes Lab2/__pycache__/server.cpython-310.pyc | Bin 2234 -> 3154 bytes Lab2/database.db | Bin 20480 -> 20480 bytes Lab2/database_helper.py | 41 +++++++++++- Lab2/server.py | 60 +++++++++++++++--- 5 files changed, 91 insertions(+), 10 deletions(-) diff --git a/Lab2/__pycache__/database_helper.cpython-310.pyc b/Lab2/__pycache__/database_helper.cpython-310.pyc index 3ebbc7beb6dff05b871c1ac6c6b345a31a21ff7e..adb1fc481d008e3961a353b6de73c0183b481ad2 100644 GIT binary patch delta 711 zcmeAXxGu_<&&$ijz`(%Z^6!4~X0C~RGK@JBwL@fuQiNL=qPSB;Qbb!AqIgooQp8&r zqIgpngBdg>Hnyx~VO%-ch&78*dGcJ=eT=G;W7w(~e@(v5mKmYQz`#%>z`($u$y}rY zV)KFsB@n?0CqP!-V$aD>kIyeHv14FhC>CR2U|?e8V&r4wU}RzBW8`9FgTf+p1_p*? z#>sP8B-q>-7#ON#CfBnm)u%8?GSo8HFc(SHFo!b)GlVmwFa$F&f?*_>t;y_Hq{hI& z@RAW^uL8(PEC?svVk=55F3l+^k^sq~IgO_zKRY!qB;PeRF*C;p<USE3_kmo<1$Um- z<QO(tHjpQ(BqrChDKm;qe#j!73bs1Ltq5!{a!_buv5zyeI6glwCo?ZK5@eYWl4UH= zU|?e`(gp_vD7K)Ob#gA7nQ1yG9GF}fV%ck1YM2+W)UYgMWMn85#~Ch6epO17|FJ06 zTWhiwaf6%#jw4YJ3lx2~*b)m0Qu9(YSs{S~mIXQc7E4NENn#NXNFiE?@ujDh#Diqx zQ$b;t3i1XhWD#-7!pOnMgYb+V0|PUICg0>4?AlVwAOlrF1SqbHv_LG7XN&YEpJP{( jlVV_C;9%fkWMSf9;$Y|C;^5@q<ly1p<ly7r<>3JU=6H79 delta 155 zcmcaE+9SZ1&&$ijz`(#z@Zx?l7yCp$8OD%_+99lr!3>&08|SQLVbq-L#hS&aG<hrQ zK1P+vl^n8@eK@ry?`AV*teX6uEmK^9fq|h&fPsNQletJ4#O4JNij(u%r5WufceBg0 xse&ZAC;M?}b1Q-5R6vC4<jGuW5+V!?3>*wRj4VtXOdRYSTpXMnoE$tnTmbt69i0FG diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc index d9221492281ddef57ac6629235aaeb7ff1bc2918..6c064d338417cf4b6e71c129cd25d4444cad19d5 100644 GIT binary patch delta 1651 zcmdlbcu9gUpO=@5fq{YHD8qx~XugSjGE7p86LmuCS<)F(SbLdLI8(S<7@8TQxKlZ@ zI8(S&c%b6EDSTjY9<Vq+TwEYU5G>9M78inx3#W*H#reSEqA6lfbHr05z~cO1amf^@ zy<RC&DbipG0kDJ&Od>@#MGh=3m?EE|(83TUl**o>n9WqwouZV=5igv|u|Q-Y10zEU zQ!p57Do<u&yw1zRz`#(<#K6G7!c@dPc`cix$x5bM3`HCa3=Auoig+0q7&2!vGB9W| z-QrJ4EJ;jCEKZHjNX;ooEsEku&Ph$oi%&_?WSnfrA~sopon1~4WE@B{2NMe;3nL3t z5lEzpPrtM{wWxUWYsM9fLAN;5GK-2!@)C1XZ*iq1=4R$pg4t~8sd*`>MYmXzGfOIO zu_x!3=9LsxzGP)!V0bCYz`#(%$N+K(*ikP}f&}=WuAKamSzo@0pMilPiaWU|HL)Z$ z9%P>;(=8T|ql*L>7#Jq6XBA^EEs&ZV%aY8a%)r0^bJXNxEDc7&Amc=!#(_LNk&%I+ zNCqSdvZP2BWHnn6Ge|%VMDS0pVAWw%n!J=%iP2>8308R?b-5RXoN%NlB^22uwK z-y#(d3v2`nvJoKnvghQd$LE)ptYj=wnq0*uQ|}52L69yECJshEa2T>M6={MDm(Wj4 z28W7%az<iadTM+@VsUYKeo@LT=77+UWKe2_VNg(kV$~UBng#;{LkYtI#)S;E3@MB? z3}p;OLMcp8ni)#71T&<t1~b%aviTK(Tpq=ppOX>*wIGT+FSQ)T34w$L6OvazHWYD! zd<iB%8Rr&1nj-^2PJtv136Qs#i?l(Wl7xFIJ+(wXr9QDFQQxK{KRY$gE*aztn2$id z0R=zUN1%uS`KX3rA!99L4Py~c2~!P24P!GXaWe)pXfpZ1QtxC?>Scx`4j!<%A^EPk ziJ3XKgws<?!099<|)JL4um~Okm#^ffEGSGhhPjBQy<Q!=hon;$mW9<N_slJ&>;y zQGJEvDSaETMRv&`55YXg!oa`)3L0mIdIpB#7-)Qfd{?AX!mxm;hH)WdEmI9skyZ^; z3Zo=L4O0pem}CZ%EMSrqOtOJVc1ea5jydeL%q7e<%*~7`oN1tt;R<F*;SOfd<naUN zrI(=aeF<{MOHjzZ1i7NVND7qS*g)x>y$GD`#6a;X4k9E#gd~Un2M;K}fJ+KZXh|^z zlxcK8T3H|g&Y4*ppP!eLnU@;H2MTROKo@~5(_}#kY$XN;hFh!-Wr;bZsc31bNSA?u zAq5oDpor&U;$mcBWMg7uM1ntgI9Zrjn2K~KTd}(`@=k7GPj*#hU|^^K=>pls!zjX7 z1QNN$5g(tMn3)$JAEGIGi#07Lu{gU36bO*?3{nere33QCqvn$}IOJ78g;)`&&?o}s za&T@0r`{q^WP@E-q&hi<!^pyffq_AU0hDz)7&(~uSh*PaShyJZIJg-3B)J&*1h^Ra VxVaelI3Z#j!W=AYj694i{{Vd8R;>U4 delta 728 zcmca4u}hFIpO=@5fq{V`<;nfz$D9-SWSA~7Ow<Xj=S*izVeMr~;Y#6dVQ6NI;!fqr z;!NR5fr;~`@PWm7z~cOHae)*;usAPRTquPFYL0M<2w0piMKndMg&~SRl|4l~o2e*0 zMIx0WULciYf#5<0MurroU@&IVl$`9vcwLB_fq|iziGhKEg{cU{uHx8yk7)&?S`=qm zW>IlTUSe))6jxeeZe~s;n9Y`+nwOGV6vdL9SyCA_c@2xC_$`K)Cm9$RRx%X{GB7Y? z&SZqJC*NSvcfG}*l30?Mlvtb^pOKnVkXjVQom`ZfSdtoFTAW&>$#jbaB!7#gD7Cnt zh?9YV0YZR6>=t`*W_n(HX@S6Gd)8z&83qQ1DvrtPSR0IZLF)LBtenWmz)&Ov5)}p! zA`A=+nrubPAhsxoker;rro$*TxtC3eQFHPJHhDG$kZGKgZ?lD3$Ri9Y;sB|Z1rcB~ zSdh(NU|@)1&&f}Z&o3>}WGs@JoX9RCZV3uL9tH*m4kivpK1LQs7A6*^BBjZCOpfwJ ziXekPF4ANwk_2hzNX|)3%!^M+(qt@>o}9=oEX9_Rnv+_R>IyOjWH|>D3)qk%<;mN* zTp0x?|K&<{m1AIF@B^t}VPIh3VH9C30*Tz>h>y=r%*>0A57895#hR9rSe#u1ib;s0 zL2ALa7HNT;p*DFbx4bAQ5Q{*5FH!;tDuW2Q$uGE#bTk+k7(~Fn;9%rn;$z`r1Y-#< XMm~NnMm}yXMh*@R7B)s6MwWj7R*{*Y diff --git a/Lab2/database.db b/Lab2/database.db index df5370f416fc0b03b3b7453c4ffa0a2129de1920..54ebaacbed664a2c1e4e273e1e464e8ab799fc61 100644 GIT binary patch delta 212 zcmZozz}T>Wae_3X_Cy(HM(vFWOZYjM_}dxy_wl!H78I!FS2kthkmMJY6gHMDNi9w( zE=es(O(_8}(@H9fDw7iv6B8#tkQbS}Pu^`ai@_iMNd_z&O#H_f_>b}5+bpQCi(f*V z*_aWmt~jMQ#n3P}F*8RmIX{<a@;!SsHb(xP4E#Gc3o5MVcei9@4mEU2E)J<G3C}Ti o%rpy0bV<nw&khd^%gV?N3pPrs%Fp!8G<Hf(N=ZjGi~$J%09;i-KmY&$ delta 145 zcmZozz}T>Wae_3X>O>i5M%9f8OZeFs`S&sK@7pY>u!Vo}K6y7b2L3M${P#8sDxBq? z7{J9SHu;gh(q<NgKm3y%SRj%+Hw!9k;&-t&%<>B>4J<YDHLT3AEHf#!EHifY%XjjP l2+b~bN;55XOg0ENPEJZmFHR{=F*M9g%*@eC&d+5)0s!jgD%b!3 diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py index c6047fc..9c81217 100644 --- a/Lab2/database_helper.py +++ b/Lab2/database_helper.py @@ -59,7 +59,6 @@ def log_in(token, email): return False - def log_out(token): try: cursor = get_db().cursor() @@ -72,3 +71,43 @@ def log_out(token): return False except: return False + + +def tokenToEmail(token): + try: + cursor = get_db().cursor() + cursor.execute("SELECT * FROM LOGGEDINUSERS WHERE TOKEN=?;", [token]) + result = cursor.fetchone() + email = result[1] + if email: + return email + return None + except: + return None + + +def is_online(token): + try: + cursor = get_db().cursor() + cursor.execute("SELECT * FROM LOGGEDINUSERS WHERE TOKEN=?;", [token]) + result = cursor.fetchone() + if result: + return True + return False + except: + return False + + +def get_data_email(email): + try: + cursor = get_db().cursor() + cursor.execute("SELECT * FROM USERS WHERE EMAIL=?;", [email]) + result = cursor.fetchone() + if result: + data = [] + for r in result: + data.append(r) + return data + return None + except: + return None diff --git a/Lab2/server.py b/Lab2/server.py index edf405a..bc7ad65 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -8,12 +8,22 @@ app = Flask(__name__) #database_helper.create_database() + @app.route("/", methods = ['GET']) def hello_world(): return "<p>Hello, Lab_2!</p>", 200 -@app.route("/sign_up", methods = ['POST']) +@app.route("/delete", methods = ['GET']) +def delete(): + resp = database_helper.clean_db() + if resp: + return "", 200 + else: + return "", 409 + + +@app.route("/users/sign_up", methods = ['POST']) def sign_up(): data = request.get_json() if ('email' in data and isinstance(data['email'], str) @@ -38,7 +48,8 @@ def sign_up(): else: return "", 400 -@app.route("/sign_in", methods = ['POST']) + +@app.route("/users/sign_in", methods = ['POST']) def sign_in(): data = request.get_json() if('email' in data @@ -54,7 +65,8 @@ def sign_in(): else: return "", 400 -@app.route("/sign_out", methods = ['POST']) + +@app.route("/users/sign_out", methods = ['POST']) def sign_out(): data = request.get_json() if('token' in data): @@ -66,15 +78,45 @@ def sign_out(): return "", 400 -@app.route("/delete", methods = ['GET']) -def delete(): - resp = database_helper.clean_db() - if resp: - return "", 200 +@app.route("/account/change_password", methods = ['PUT']) +def change_password(): + data = request.get_json() + if('token' in data and 'oldPassword' in data and 'newPassword' in data): + return True + #return "", 204 else: - return "", 409 + return "", 400 +@app.route("/account/get/data/<token>", methods = ['GET']) +def get_user_data_token(token): + email = database_helper.tokenToEmail(token) + if email: + return get_user_data_email(token, email) + else: + return "", 403 + + +@app.route("/account/get/data/<token>/<email>", methods = ['GET']) +def get_user_data_email(token, email): + if database_helper.is_online(token): + data = database_helper.get_data_email(email) + if data: + value = { + "firstname": data[0], + "familyname": data[1], + "gender": data[2], + "city": data[3], + "country": data[4], + "email": data[5], + "password": data[6], + } + return jsonify(value), 200 + else: + return "", 404 + else: + return "", 403 + def generate_token(): characters = string.ascii_letters + string.digits return ''.join(random.choices(characters, k=36)) -- GitLab