From 68f03eabbc2b0a07e26ee26eaa449b6f987f508b Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Thu, 7 Oct 2021 15:03:02 +0200 Subject: [PATCH] Mail send ok --- papi/mail_sendermodel.py | 24 ++++++++++++++++++++++++ papi/main.py | 21 +++++++++++++++++---- 2 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 papi/mail_sendermodel.py diff --git a/papi/mail_sendermodel.py b/papi/mail_sendermodel.py new file mode 100644 index 0000000..594a077 --- /dev/null +++ b/papi/mail_sendermodel.py @@ -0,0 +1,24 @@ +from mailjet_rest import Client +import os + +from papi.credentials import api_key, api_secret + + +def sendmail(htmlpart): + + mailjet = Client(auth=(api_key, api_secret), version="v3.1") + data = { + "Messages": [ + { + "From": {"Email": "colin.goutte@free.fr", "Name": "Colin"}, + "To": [{"Email": "colin.goutte@free.fr", "Name": "Colin"}], + "Subject": "Monitoring API", + "TextPart": "My first Mailjet email", + "HTMLPart": "" + htmlpart, + "CustomID": "AppGettingStartedTest", + } + ] + } + result = mailjet.send.create(data=data) + print(result.status_code) + print(result.json()) diff --git a/papi/main.py b/papi/main.py index 6a49a2e..259877a 100644 --- a/papi/main.py +++ b/papi/main.py @@ -106,7 +106,7 @@ def list_notification(idsonde: str): @app.get("/notifications/{idsonde}/text") -def list_notification_as_text(request: Request, idsonde: str): +def last_notif_text(request: Request, idsonde: str): notifs = notifications[idsonde] try: content = notifs[-1] @@ -139,7 +139,10 @@ def list_notification_as_text(request: Request, idsonde: str): @app.post("/sonde/{idsonde}/error") def post_sonde_error( - idsonde: str, body: dict = Body(...), db: Session = Depends(get_db) + request: Request, + idsonde: str, + body: dict = Body(...), + db: Session = Depends(get_db), ): if not (sonde := crud.get_sonde(db, idsonde)): return # pragma: no cover @@ -157,13 +160,16 @@ def post_sonde_error( api_error["date"] = date - post_sonde_data(idsonde, body=api_error, db=db) + post_sonde_data(request, idsonde, body=api_error, db=db) return @app.post("/sonde/{idsonde}/") def post_sonde_data( - idsonde: str, body: dict = Body(...), db: Session = Depends(get_db) + request: Request, + idsonde: str, + body: dict = Body(...), + db: Session = Depends(get_db), ): if not (sonde := crud.get_sonde(db, idsonde)): return @@ -189,6 +195,13 @@ def post_sonde_data( ) if content: Notifier(idsonde, content) + res = last_notif_text(request, idsonde) + html = res.body.decode("utf-8") + from papi.mail_sendermodel import sendmail + + cond = True + if cond: + sendmail(html) return { "count": len(mesures_) if "date" in mesures_[0].content.keys()