From c753321eb629c0946cdf1b0582c858195dee79c5 Mon Sep 17 00:00:00 2001 From: Jadowyne Ulve Date: Sat, 26 Apr 2025 20:07:39 -0500 Subject: [PATCH] recipes_api.get_image updated to new schema --- .../database_recipes.cpython-312.pyc | Bin 10050 -> 10807 bytes .../__pycache__/recipes_api.cpython-312.pyc | Bin 18071 -> 17837 bytes scripts/recipes/database_recipes.py | 10 +++++++- scripts/recipes/recipes_api.py | 22 ++++++++++++------ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/scripts/recipes/__pycache__/database_recipes.cpython-312.pyc b/scripts/recipes/__pycache__/database_recipes.cpython-312.pyc index f923b9de2a52fd8b94a18f1f85f92c651a0c8619..8d297b837520d70554f8097d84a3d6aee09a3e0a 100644 GIT binary patch delta 694 zcmX@)w>^aKG%qg~0}y03@@B+JOyrYbTrg2xsh%%|xrH%`C511AC6zUWHI*%eEtNfu zErq>>HHrfvn#PjC0Tkf`iU8H5F{N+cE+`c+8=yZX2~hbRcgpn7oixsh)*ZVgt(!Ucvt8 z&gkyg4-Cwl5;Kx-@bLG0cY0rtGTz{_!R&&i-vtT(3xN?=cp`5Ii%qwgXfxSvf#OAB zl@6C1!s6fAfqK9izcT|(`^W$!zB9qZej#MOgJi(czlxQBPFN-A#4pFZTiel+^`IK3 z6F>7oOI9Z)&VzRBK=vViRwoJe&5E+qnI<2XI?ZJS)DR1Dx9lWt(ajsBO<33rfZQU( z$+^;!lUWo5xJ-fEe7Fi@1s+C5W1sGV)IjQnMET1ws+X#3GQU zBD=|R)MU9_fJ{apE}l5~uv(xL8>7Sw<_`=&YC$NN+TijT#QP{PSwvln#Tlp)0NR43 A(f|Me delta 269 zcmdlUa>$SGG%qg~0}$wx^JXxKPvnze?3$>qRL`5j+`<^elERz9lFFLGn#z{Kmdc*S zmcrh`8pVMSO=C&n0E%z|MSyD3m{K@_JT4S@E}#fEiU>DQga;_X1GIs+l1Y>ACCCAq zjJG%o@{3D~3v*JEHr}ff-^{Df$TWGb>}gg5pmgZu_e%1cd*t+4*z|zhBK^q+l{8t6 zfz0&H@0HXT84Wj!sjOmVwE>D$Za%7>#K_1uSwqvF8>G1iq^`(ja=E4~mlKf52*kzZ Qljms$PUh6oVsQj=0fxyx0RR91 diff --git a/scripts/recipes/__pycache__/recipes_api.cpython-312.pyc b/scripts/recipes/__pycache__/recipes_api.cpython-312.pyc index e8e41da82f7d41378e417a3127db7461d215c293..605321dced94a2f990b91348b7481835ee665021 100644 GIT binary patch delta 3370 zcmbVOT})d?7WUW%8;p&yfq)748f@V5oA8qmAcTY#O4C+pfX&KP>l)t+TP1H70`>>AR3&%rSaF5L672#@Snk>(g>kpswZ6dWJpM?vX_H$d*K3v?15o@Q z?J<#EHG7Z)lKVAs0NZO~dp%O^D!J)3_Xpo~WqkJ)@xB9ie;Is#5nnGg?DOAP20u{5 zA3ET_sSJKl?p}{0D~@L1E3&?fdR^dViR`d;lLQgFjxxcOJlZmBEjh_(-=I zKh#+)gFIm(Lp=|BmU>I*=y(y;w-4372Q{&26$jbp_D}M+DjpEh%yt|i$j=>Y214`a|P5}90Dqa&cx zQTC~~y;eZ=q$$SpKYIUZ^`cYShXQ?qv+w;wF5HwJM={2R>e~Y+P#s4xfnpMc1BH*J z>l-^coclNfM%4zw%!AG&48>FIM*USXlOJn1XCsfZKQ={33%k|yCh242&A&M|2arYj z7^1sCh+b+(9e389tFjhbS2JnqK^xz>8#R%A+#H0YziJ+N~ zRB<5$hMz%lRa}zJ^Xkwj%srofF7To~FbyijrbRh9oIy^`DEoI?0HUr6_PCDWe1W2= z;Mo77=;qNz;NC{{ zkP~_V=lOBNCrY&Qnj385_PWcwhe+VVX>eCFIaSM~xU0*6zmdP%GfyCw`@Pe)r6P&C zLxJ^pnUP4{u^gufpkBABFXU(zOmqY7HMvYGwvmgcHAUMr?w1O7(MdJL6#4LP{SL=C zH%oJFnB}PFQV8)aR~({?8y>il?G$H z;5;fUxNgUM>C2$1l_0S8=Jj!51s2XOan4?c$&d19k8~nu^yojV^_-xZtdh`jRE}li z+8UfYc|@!%T$^hn;}@`!R6$WF8sGg5Fz8h)O0ux5%*k`*vdK(bnonUn+y?xY@Ta~H z;)>kWsuE|bfa6=FW1uUIu? zm4A};a`9nZfQ}yb!7msAm=?4(St#TuV1B|%h6-`PIB3H1CKy#!Nv{f;yk=SzNl?

5ot_skcWUZJPrWT@e?Cz;%mYQfxbpcRxmpZ=j*6>@uzvH8KKZ->VdY$1n#_yyC zM?&7y0Sf1t$5wh12HEaJD-oDyva$L)_;5opRXe*iJ(z!Xvd4C$l+P+|W3)@q%*;TY zrSIUBksjL^Ib<`E8Ql8+6Up%=T0RknaWQ!!Jg7a{Kp@a;_+lyMODbvk;b((wPuEv` z0H{Fz#`HL;>;zSuWdAyS>I8p6@nO>K__*p$Y~z}el4&b9CNkMg-AUz*oUCf9?#R*% zoJy5mWXoqxp5sOMEdp!R1XZ${I$)f8mGbuNC|G&_(OoOaxcWkjf~S{gJ*=V)xYQYo zrQ<0%7Nd>q=QE8#{N-XKdlEI?oABQ9_l_pm@J#pYI*zeJQ*1f>?o&L?6st)wRsIWt zA5kj6@CWB4ypFk~JVpNsL#Ve!eZc-SGn4;%CTyMkoYa0}^^ryLt<7TfqL?MSb~NmE mTdeN;#CMnY?)Z=1BSRcoOCBphhj;Bb-fd^6XV2U5R{R2->e~1K delta 4003 zcmbVOT}&I<6`ng|V>@6lm_LId<{y&~LJ|l80to>MO9`ulEREBy*XtR;#Kz8@aY$Ga zSSjjeceRbut5vevA5~R={JJ?D-c zPx$FW2Ylw-d(U^z?>%>Z^Depb9?Ac`)44~0=dJ6`+12*j`Q_yP?WS**YXh}JkOkQu zt&3F!>N)R-HpChOjj^Uc6A?r~A@Uxjc~wNTAO!p{)2R4YNqXF(_~)h!-c04(jD%7t z=iLxi(~FsRU_auP%@Bi^ohD$LoPUF4Aencdbr+QdvTKIiFU*(toe87Y@>zCcz z;Ke(@+e~ni^>T?^x;P|9TILj!)-)?uKvJ6KrgvDWyzkA# zlgrG$AY{-D1`O6Xy6;(SMNr+4AKchq@4&2~N{^EcI*ae+a2yzq0v(uG?m;wU8cH zs@Hx=a(jXGOS*$9;YdOWMr2yW9^|$*HNZTr0&-9A+i5;9x;>#@4aXBRhjd#wK0mL7 zHCoJy^M+~~VO6yP@!>;jP&mifkha61I<=U0Qz}1%^Oi(tMxm9+TBDIzM5A6-;i@LJ z?3incxY=!2T@jk6Tf_0>yhb~Kr=9EzS8W0AOZzgUC$;JNR&?Q}v=s^N37c)W59Oj# z+J)p8Yb~yQr5o8EB)v$EBe5ZI1JNBbigt#(Pq9DxC2q8_=_!~{B_J8c=u0r*WP<&& z_&qY1I$ZLyM8?>S@&@8%pO(L4L2KB*%iCGRQ`?QUVbMl~g7Q)w6k z-biikm56f?Slt?n%Sx11GFwfD{S3_96KQK|u;#8}g#c8DS;$ z`%TWA#ieXrxDs(ST^Q#Qa!6B*@~{}?k=+q3RxzvD1nfa*8gvm>-bay}Kvsl}3L)RM zGW^7r|JL<4uiq_Y59$}7in<#9CFO8az3iBOfW+9F{xXqj?0tW8Pqv5_oxb_F<_krm z@dZV$F_)8JIj?f=$Rwzv=h#2}`xIX0`B`@`i1Y`z&a0VMecCM^er)4SoI*0Z;z0?}YU7^Puat2;i}=VBmGz>rh{iDqT`9Cg~+Kf#Q5# zG9C+FN`~gOh<4RDdK%0_>q(*vk48DgyMp5UFujayIxg&XTh;Dq%uQF#U`Pw;)&vx` zMvd6u77Iugk-ULqOHgu5x#r3-Jh}y4qD#Q4IY2P&K2Q4S-c~Svd=mW9K{-!;P>52L=f%>8c^d|O~0=Z z4I2f2Wa5GMHBqy&8q(itSElF(6Tg=u zYolvD>wRa}%O}^TUR!_V^*`o?AG=HM^xp1eeLt&tSl)K9%w(#zP*DTN0BppT;o7V8NJmcQ;;ra8?OKiNm8v1;+yRD-c*8R@x^=o_( z@K%YRH(Sz0i*fE8TkkHb$u`M!Kj5lOiDLGiDsK${bQj!0il!Jw@E-69Oj}YXdtR0H zWzC+&&9N8I86ai{=!ZCaiGA5;*zI9rf9d~e`*?p@W7c+?>9dCGH#_i7e{}_SAYTn# zHkpfpWEhFedIy?^FCvS#7R46LdnLs)L@`?w zedZ^b4kCwfd1mhgP06UzM}G@LY?$ib*{1`iNOkIO1C3(mQ?ZCllJ6uz93~r_-)I&@ j=hvj@5h+@Cw|_+rJr!+ago_;B;Os^bn;JS}K_&kMON%cR diff --git a/scripts/recipes/database_recipes.py b/scripts/recipes/database_recipes.py index 4f02266..89d7bd9 100644 --- a/scripts/recipes/database_recipes.py +++ b/scripts/recipes/database_recipes.py @@ -81,7 +81,15 @@ def getRecipe(site, payload:tuple, convert=True): return record except (Exception, psycopg2.DatabaseError) as error: raise postsqldb.DatabaseError(error, payload, sql) - + +def getPicturePath(site:str, payload:tuple, convert:bool=True): + database_config = config.config() + with psycopg2.connect(**database_config) as conn: + with conn.cursor() as cur: + cur.execute(f"SELECT picture_path FROM {site}_recipes WHERE id=%s;", payload) + rows = cur.fetchone()[0] + return rows + def postRecipe(site:str, payload:tuple, convert=True): database_config = config.config() record = () diff --git a/scripts/recipes/recipes_api.py b/scripts/recipes/recipes_api.py index 06e78c0..c2632bf 100644 --- a/scripts/recipes/recipes_api.py +++ b/scripts/recipes/recipes_api.py @@ -5,7 +5,6 @@ from main import unfoldCostLayers from user_api import login_required import os import postsqldb, webpush -from flasgger import swag_from from scripts.recipes import database_recipes from scripts import postsqldb as db from flask_restx import Api, fields @@ -249,14 +248,23 @@ def uploadImage(recipe_id): return jsonify({'error': False, 'message': 'Recipe was updated successfully!'}) @recipes_api.route('/recipe/getImage/') +@login_required def get_image(recipe_id): - database_config = config() + """ get the picture path for a recipe by passing teh recipe id in the path + --- + parameters: + - name: recipe_id + in: path + required: true + schema: + type: integer + responses: + 200: + description: image fetched succesfully! + """ site_name = session['selected_site'] - with psycopg2.connect(**database_config) as conn: - with conn.cursor() as cur: - cur.execute(f"SELECT picture_path FROM {site_name}_recipes WHERE id=%s;", (recipe_id,)) - rows = cur.fetchone()[0] - return send_from_directory('static/pictures/recipes', rows) + picture_path = database_recipes.getPicturePath(site_name, (recipe_id,)) + return send_from_directory('static/pictures/recipes', picture_path) @recipes_api.route('/recipe/deleteRecipeItem', methods=["POST"]) def deleteRecipeItem():