From a2fc7335296397a6bc2f784536a4ef3249f8441a Mon Sep 17 00:00:00 2001 From: The Creature Conservancy Date: Fri, 28 Feb 2025 22:22:20 -0500 Subject: [PATCH] bump --- .../__pycache__/main.cpython-312.pyc | Bin 0 -> 2857 bytes plant_backend/log_file | 14 +++++ plant_backend/log_file_name.log | 7 +++ plant_backend/main.py | 54 ++++++++++++++++++ plant_codex | 1 + 5 files changed, 76 insertions(+) create mode 100644 plant_backend/__pycache__/main.cpython-312.pyc create mode 100644 plant_backend/log_file create mode 100644 plant_backend/log_file_name.log create mode 100644 plant_backend/main.py create mode 160000 plant_codex diff --git a/plant_backend/__pycache__/main.cpython-312.pyc b/plant_backend/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..919962ce823c7dd3a091a285e950a85ef17b4d67 GIT binary patch literal 2857 zcmX@j%ge>Uz`(Ge@=&@X8w0~*5C?|Yp^VSl7#SF*Go&!2Fy=7iGDb1xGDR^lg7{21 z%(*O4EMPWs4r>%^3PTEW4jYtak77?@NMXt0$mNXU%;k#W0;^-q;m+lb;$~!EVn}7r zl7QNQM5VB;W`uB~cvE?^WFc&1GL=0`4w(;O!*qd7W?T&sWQY<-706PCa*(K0mK64M z#uN@P$)3)*hI2J5L>jE0HA@A;Lnc$WQn*ui*6^-ohKNQ9r|?CIqzYtdL-@#K3O~#} zDFQ7FaMy_8P%Q{oErg_6JXIje5ZP1+J4G0-S|pV-RWg+;jY*P$fgz14MYM$lZkJRg zv!>WfkQPm*TkLL$#U+jbp10V8QVUB{i%T>aZ}B<%2L=0PrljPgmM0da`e`!VVsXh# zF1f|*m{+OEc#9(?u_U!5GdH!0x3nxXIlm}RFSV#BzvvdDR){9cE#AbOoc!|m{G!bC z%)H`Tf)H+UQEEzRUP)$RPBBbHZfZ$JehQqMk(!v2T2y?CJvl!mGdZ>R7DqvTaY=en zYVj==LsLt0P3Bu{DM@*Wxv95UN{dsAZgCVO78jT27o}8*W|Wi^Sn2EMTQWaJl@ zSecp_8~tL`PX>7thM5=`7@8Rv7(NRzFfe#CFoF^0^>I#<6SCo!+2 z7(&G-B_?O5=B4Q8CT8a86;$40Day|;DUxDfU;xEPu^L?_f<;8wlB zqWZI#g@J*giIttPiW_1|v3_Ds4vH7p7#J8psqFJF22kEB0XYebvp}L?7J?`NnFr=( zf%Jh{2qKFE!G^KcFv3z$Ekg}M7B@^BL8mamR4{^6@FHYjELb{oVd!T}W=dyBW{Txy zV5ns*;fJZHf!i{XsfVA1p_ZwZv4$ZF6echwP#R_yBSQ^SFhepEBSSJ%En_)@CbQp4 z##?;JrA5X0Me%8g$tC$kl~pRmsX3|1B??*!X+`D?J@{4Ms>iqz!NlGIxq zX{ja28HqVLw^&j@*?~1VC%-sVllc~Na%s^m#)@0)MXAN5IVHu#pvX{AP$&Y$^)0^i z)RK6xW8!l%i%W{M7#J8prB`tz0|P??!xJvSe!Wh;H5}{tSMp!iaJs1B)S-8o%ele% z1`B(;ccb?O0kbPC<~J0Sm-8&-SLPz;LlgF-@%7A#eKu;f%)0Lr?zSW*&85|g2&DLAM>WgN)SpPe9OI%6$k z3R5jp4MPeu$PXzj*%}NCMNBEIpqNTw1Bulzq_Bf&rV_YGS)eQiHV{F;;xG$j2SOOk zg2~k|rm@yCmw=oM7SG}YQz%3UxJCjAW$}PWRGh_!$_Me*aKO@PElUjxw)B<4S;M>< z>Sjg;B>ROy`cW~=t&9vcELozcav&Z;zLG(c%g^l=dpIcNrKa3sOH3}w%+I^U73$~W zA0O@*;u;ikiwlw>z{MFKgbgaaKnjaw7#J9;8a(}iU4udtJpDraVQD!zu_!gZq$n}3 z7-D3xf(Aq@$QT`ns(6?&Itma)ItoRp$@xVo@u0ZZQAo>4Opi}V%}FguP0>^cbMy&y z4OY-lE!I&$#hRMjMW7<$7IR*HIXKCr7J;hQB6$V|h9U(Jp$HYqDLjeRJ8HNXvOhGF0 zN{Y-G7#Kh%7Ec3bmk(?VB9aY0H+aPw+-|UQcX%|`&5*gou6jdUx`XF|u=os~i^8f4 zN-pTwTvWH+QFf%_c+J6@!*$o)qb|BfU3QPT5SMj9D7(S?4xw!Kfq_9VnCSxpLkLqm z(-#H?)&!`ibK{o=66%}*)KNwq8TU|?VX z<^SS03=9k(m>C%v?=z^}WiYzUz<--T>^1}6eFmAk46+Y6r8>l~b4p$0l$v3GnNz!g z?FIu|JAWhp1or8?6M3&N$US7^ZO&|9zQMqJok8d#gU}5Yp&PJ9U9lUq%LwvEzsN`bs+2tmrn!x1Aeszo(GI9?c$B%9m35rADI{# z)jl&bF!6l=u|BXdFtLK=WG^#{e`I216b4C3d;qaN2!JFd8YM1pNnK`?{=me?$UUKC ahVug986FesJ~8kya)T7hd<02=LjwRjq@6MV literal 0 HcmV?d00001 diff --git a/plant_backend/log_file b/plant_backend/log_file new file mode 100644 index 0000000..d70f151 --- /dev/null +++ b/plant_backend/log_file @@ -0,0 +1,14 @@ +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:83} INFO - Started server process [1815517] +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:48} INFO - Waiting for application startup. +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:62} INFO - Application startup complete. +[21:50:29] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:263} INFO - Shutting down +[21:50:29] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:67} INFO - Waiting for application shutdown. +[21:50:29] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:76} INFO - Application shutdown complete. +[21:50:29] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:93} INFO - Finished server process [1815517] +[21:50:31] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:83} INFO - Started server process [1815525] +[21:50:31] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:48} INFO - Waiting for application startup. +[21:50:31] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:62} INFO - Application startup complete. +[21:50:43] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:263} INFO - Shutting down +[21:50:43] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:67} INFO - Waiting for application shutdown. +[21:50:43] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:76} INFO - Application shutdown complete. +[21:50:43] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:93} INFO - Finished server process [1815525] diff --git a/plant_backend/log_file_name.log b/plant_backend/log_file_name.log new file mode 100644 index 0000000..59ef046 --- /dev/null +++ b/plant_backend/log_file_name.log @@ -0,0 +1,7 @@ +[21:50:22] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:83} INFO - Started server process [1815494] +[21:50:22] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:48} INFO - Waiting for application startup. +[21:50:22] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:62} INFO - Application startup complete. +[21:50:25] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:263} INFO - Shutting down +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:67} INFO - Waiting for application shutdown. +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/lifespan/on.py:76} INFO - Application shutdown complete. +[21:50:26] {/home/tcc/envs/creature_codex/lib/python3.12/site-packages/uvicorn/server.py:93} INFO - Finished server process [1815494] diff --git a/plant_backend/main.py b/plant_backend/main.py new file mode 100644 index 0000000..f226932 --- /dev/null +++ b/plant_backend/main.py @@ -0,0 +1,54 @@ +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware +import psycopg2 +import psycopg2.extras +import logging +from typing import Dict, Any +from datetime import datetime + +logger = logging.getLogger('uvicorn.error') +logger.setLevel(logging.DEBUG) + +app = FastAPI() +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Allows all origins + allow_credentials=True, + allow_methods=["*"], # Allows all methods + allow_headers=["*"], # Allows all headers +) + +db_conn = psycopg2.connect(dbname='codices',user='postgres',password='1597') + +postgres_url = "http://localhost:5432" + +@app.get("/") +async def root(): + return {"message": "Hello World"} + +@app.get('/plants/all') +def get_plant_list(): + cur = db_conn.cursor(cursor_factory=psycopg2.extras.DictCursor) + cur.execute('select * from plants.watering_status') + results = [dict(x) for x in cur.fetchall()] + cur.close() + return results + + +@app.post('/plants/update') +def update_plant(data: Dict[str, Any]): + + flag_deleted = False + action = 'Watered' + if data['action'] == 'UNDO_WATER': + flag_deleted = True + + value_place = (data['plant_name'], data['plant_location'], action, datetime.now().date(), flag_deleted) + cur = db_conn.cursor(cursor_factory=psycopg2.extras.DictCursor) + cur.execute("INSERT INTO plants.care_transactions (plant_name, plant_location, action, record_date, flag_deleted) VALUES (%s, %s, %s, %s, %s)",value_place) + db_conn.commit() + cur.close() + # body = req.json() # Parse incoming JSON payload + # print(body) + return + \ No newline at end of file diff --git a/plant_codex b/plant_codex new file mode 160000 index 0000000..f0389ac --- /dev/null +++ b/plant_codex @@ -0,0 +1 @@ +Subproject commit f0389ac49aaaf6f97215a6b7eb468d01b72263f6