From ef2ac8700d980372e149ee2e660977267d66ae1f Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Tue, 7 Feb 2023 21:59:58 +0100 Subject: [PATCH] get_messages --- .../database_helper.cpython-310.pyc | Bin 3468 -> 3866 bytes Lab2/__pycache__/server.cpython-310.pyc | Bin 3780 -> 4420 bytes Lab2/database_helper.py | 23 +++++++++-- Lab2/server.py | 39 +++++++++++++++++- 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/Lab2/__pycache__/database_helper.cpython-310.pyc b/Lab2/__pycache__/database_helper.cpython-310.pyc index 2521f7a2f640d7d312631b2237ca65301146cc25..c0cb2b59bf7e62a54d13752438c29730b94473b0 100644 GIT binary patch delta 521 zcmeB?o+ZbZ&&$ijz`(%Zv+GfE0sllk8OA9SwOd5xQsi40q6AYEQWRSlqJ&ZygBdiH zHg2iom|VkQ&Q!xR`8}KX<XN0*oJHac3=Auoi})ws<B*-q!6hOg#K6G7#K^_S$H>9R z!pO$R#>B?R##p2_Ifp}*&4hu0p-Oo2K{loOaE4$8Mlg(INMQ(O&}8zfat?O&adi$+ z@O2Fic64{uQE>Hj^z?}jcJ*^{4N`Cm^7n;F1uKMmxCXgG6$H6Ddj@#A`i0oqTWhiu zfqYaX!N9;!#Ld9K5XF&}T9TZRn3Gea3KHW06K)`qlYxQZmQZ?XNqlZ<adBdLYH@sO zZenImF#`ibF&~mgKwe;DEK+A+U`S>Jg%=bvP1fO7nmmV<mzkl4VR9U|7%SMtlOM86 z28OtS14omoh#zDZ*gX)tL0quag2@@F$=UIx#i>Q{sTG;UCB-!$n|T-*7+?X&!pOo{ zqye&*X>uWl#N=?U)r>8ZnYpJi6{${M&aKASxA`153!}_bm_{Z>5k@XhxPwAnkAZ<f kQ+V<_9v3z>kge*I^?0oqRVHWh%5m~?aB^^PaPhDM02je%QUCw| delta 278 zcmbOw*CWlB&&$ijz`($;Fz-?FIo^qUGK?(~wOd#jgBdjCHXf<tU}T-#!D=Rv&QQx- z!{ovc%U;V;!@Pi{hGiimBSWG1<iBi^lP7ViS!l8rfy^nAU|?V<;sz0t3=9mn*b)m0 zQu9(YS&R5VVqjTCkOWIgVoBmH#-hpRI8~HE!c2@@jC_n7j4X^Sj2w(SjBHR?q`|<z zkjyl>kwaqgWA4?ArIY)4rZH+x-p8ph*@{<~v3|23FAJkg8v_GFF%JU+0~4bNBNt4s z9s>h|rr_i}K9|XR_{>xk7#J8h7<d?2m^hd?*f}^kI5~JYI63$@csaN^csTeuxOmtB Dow72? diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc index b5132ee498d8e00d6aa1e48821d75a3350b8b256..3af99e8a6819cb2af0635cb1cace0ebe952112d3 100644 GIT binary patch delta 1219 zcmX>idqjyZpO=@5fq{XcclV>@Ht~skGK^Uhwe{;$7*d#W*rV7}8B;l$8KXE;IkUJ@ zm{VBN8B<t$nNrwN*jpHy8Kbzt;v8^s&J-@NI1gByJB0_To;QULEY1rS=ZA|6qzHn= z`M}~raPfNK6cMllKUhLEMGR_?c!~sATmURC3Ab1(MH(zF2o{%ti_50SfyITu;_`5D zg%m}wxG-2;2`;Xjq5=|kiV^`!sKQ;OmZA=lh!RcFNYQLzh!RWXNYTn>D%zZ)oyr+6 zp31pEVj%+~Lkd$c7;EZGPGY>y$TQiBX&$5C=9^5lOpH>S!&wU$8BHdiU^~m`x_KJA zG$Z56$(uMd8K+LZ!%@m=z`(!|I5~_{mC;~w4W~Kd=gC_*6|`0|`4y=$FfeE`7x6PN zFcj%CFfiN_PERd~FD*_jicd)_NsLd;P0Y+$Ir$%_zHkNu1H)$y1_lN$CKg66Mi!<b z)5#88KN<BVTX8$E8Z$636i%+^R;~xJs$}#NlaupH^Gfv7Q%m%7Q;Ule(^K_rO7gQ) z^X!rtLFodDnHU%tm>C!toIy@71QAB)ZW4pL32G3;Sw$uw)tqnwl-h2I)nh0ITiOaz zW(Fec7#J9;RPeb^-v;b$yJV2tpw47qV_;xlfx5G}jDdlngkb?=4Z}jlBFhqn1xz)J z3mI#fYM6@Z^-35PFoU>7dYKHh%;^lZEHz9n46y>WtTn7DjFJpBtSL;A3@OZWm};48 zSQfC<FfU|eWGECbVXa|lW=vs8V+v-dVJbF<n`55B8qAQw7R->s9?YQ0;a3C-zan!` zFfrX?hla^5w(_FPlGLL5B2XL^X@k6K4I;o%%m#^KJq8AbC?QY?L3I^Ff-*`lIU_YW z8xrxU6`92)#kbfJ3kp*6Qi?#H)?_PE2bm=dB9uYtgsm(wr!=)VioGZv%(}&xQUs0) zb1(^tiy~VF28KQc28LoeaH`>A<YQuCWMSlBWMg7uWc$a%!UGXuW??F_oxGTP9cz(2 z0|Ue4C>|L$u+w!X*YHR&>QA1|6UVrG@;4q$MwiJ7ylWZvPCmyg%P2Yd4X+HpH^@ou zASbb873b$o7UVOK0;TsNQ;-BGF&2Sh9PF4Pm&t*A=3Gt;3=AR+984UHlPB=0iwbiw X@^Nr6@=0(pa)@%UvN7^7vit)8_Q)N# delta 644 zcmX@2bVQafpO=@5fq{WxQQo6uAK{67GK@wOwe{;$8B^Jt8KXE-IkGrYm{VBN8B<t$ znNrwN*jpHy8Kbzs;v8^s&J-@NI5$|FJB0_To;QULEY1TK=ZA|6qzHn=dBNgBaB<-j z5wLhYA6P;(MGR_?c!~sAf*&j{3Ab1(MH(zF02Y^li_50SfyD*E;_`3{6jBty;zB7( zDatJjQNpS0DJt1aMblGMQ#s;AQaKigE@WV2;7VZ%W&mMLwaK#>uQPH_E@GO;D6m<O zxt57ha&tdx0VAXFB=)n6E}PG>OEWTRPJYFq$vADY2xlp)J_7?oz~nwoRW=Z-N^){7 zm*nJ2oRW;ilizSE2x>C<6{#{XFlaIt@iQ<m6zNTt<&xmkWGYez@q{ODWEY+s$R#42 z&cMJ>%)!9Gz{SME$i>LQRAe~0g6k)v?&KnF2UY_H28M#k+qsn)4JPyQt>e7Ko|{@+ zoS2?E`2e4cq8Z329S|W0vWcyT8N`+c5l}n-^2ISWPmbZ&WVD>z#=q8OCdf7x1_lNm zMiIs$H3kNTTO9H6xrv#1@$n&=Vz*e+auSQPi<m%0fDHqwg?PXLBxb|Fz%aR1z(4@x t=OROp5Xgx|mXnVQm~&V#FffQPa4=2g5LD+C;$q|w<zQiB<Y8p_2LKadjadKy diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py index a14e796..f69e47b 100644 --- a/Lab2/database_helper.py +++ b/Lab2/database_helper.py @@ -105,14 +105,29 @@ def get_data_email(email): cursor.execute("SELECT * FROM USERS WHERE EMAIL=?;", [email]) result = cursor.fetchone() if result: - data = [] - for r in result: - data.append(r) - return data + return result + else: + return None + except: return None + + +def get_messages_email(email): + try: + cursor = get_db().cursor() + cursor.execute("SELECT MESSAGE, EMAIL_SENDER FROM MESSAGES WHERE EMAIL_RECIPIENT=?;", [email]) + result = cursor.fetchall() + return result except: return None +def check_user_exists(email): + cursor = get_db().cursor() + cursor.execute("SELECT EMAIL FROM USERS WHERE EMAIL=?", [email]) + email = cursor.fetchone() + if email: + return True + return False def change_password(email, newpassword): try: diff --git a/Lab2/server.py b/Lab2/server.py index 471f7d0..d78f754 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -3,6 +3,7 @@ from flask import Flask, request, jsonify import database_helper import random import string +import json app = Flask(__name__) @@ -95,7 +96,7 @@ def change_password(): else: return "", 401 else: - return "", 406 + return "", 405 else: return "", 400 @@ -128,6 +129,41 @@ def get_user_data_email(token, email): else: return "", 401 + +@app.route("/account/get/message/<token>", methods = ['GET']) +def get_user_message_token(token): + email = database_helper.tokenToEmail(token) + if email: + return get_user_message_email(token, email) + else: + return "", 401 + + +@app.route("/account/get/message/<token>/<email>", methods = ['GET']) +def get_user_message_email(token, email): + if database_helper.is_online(token): + data = database_helper.get_messages_email(email) + #this user has message(s) + if(data and database_helper.check_user_exists(email)): + values = {} + r_value = [] + for d in data: + values = { + "message": d[0], + "writer": d[1] + } + r_value.append(values) + return jsonify(r_value), 200 + #this user has no messages + elif (not data and database_helper.check_user_exists(email)): + return "", 204 + #this user does not exist + else: + return "", 404 + else: + return "", 401 + + @app.route("/account/post_message", methods = ['POST']) def post_message(): data = request.get_json() @@ -154,6 +190,7 @@ def generate_token(): characters = string.ascii_letters + string.digits return ''.join(random.choices(characters, k=36)) + if __name__ == '__main__': app.debug = True app.run() -- GitLab