requests-transport

This commit is contained in:
Tony Rewin 2023-10-06 00:17:24 +03:00
parent 120208a621
commit bbc5dc441d
2 changed files with 14 additions and 24 deletions

View File

@ -1,20 +1,15 @@
import requests import httpx
from settings import MAILGUN_API_KEY, MAILGUN_DOMAIN from settings import MAILGUN_API_KEY, MAILGUN_DOMAIN
api_url = "https://api.mailgun.net/v3/%s/messages" % (MAILGUN_DOMAIN or 'discours.io') api_url = f"https://api.mailgun.net/v3/{MAILGUN_DOMAIN or 'discours.io'}/messages"
noreply = "discours.io <noreply@%s>" % (MAILGUN_DOMAIN or 'discours.io') noreply = f"discours.io <noreply@{MAILGUN_DOMAIN or 'discours.io'}>"
lang_subject = { lang_subject = {"ru": "Подтверждение почты", "en": "Confirm email"}
"ru": "Подтверждение почты",
"en": "Confirm email"
}
async def send_auth_email(user, token, lang="ru", template="email_confirmation"): async def send_auth_email(user, token, lang="ru", template="email_confirmation"):
try: try:
to = "%s <%s>" % (user.name, user.email) to = f"{user.name} <{user.email}>"
if lang not in ['ru', 'en']: if lang not in ["ru", "en"]:
lang = 'ru' lang = "ru"
subject = lang_subject.get(lang, lang_subject["en"]) subject = lang_subject.get(lang, lang_subject["en"])
template = template + "_" + lang template = template + "_" + lang
payload = { payload = {
@ -22,16 +17,11 @@ async def send_auth_email(user, token, lang="ru", template="email_confirmation")
"to": to, "to": to,
"subject": subject, "subject": subject,
"template": template, "template": template,
"h:X-Mailgun-Variables": "{ \"token\": \"%s\" }" % token "h:X-Mailgun-Variables": f'{{ "token": "{token}" }}',
} }
print('[auth.email] payload: %r' % payload) print(f"[auth.email] payload: {payload}")
# debug async with httpx.AsyncClient() as client:
# print('http://localhost:3000/?modal=auth&mode=confirm-email&token=%s' % token) response = await client.post(api_url, auth=("api", MAILGUN_API_KEY), data=payload)
response = requests.post(
api_url,
auth=("api", MAILGUN_API_KEY),
data=payload
)
response.raise_for_status() response.raise_for_status()
except Exception as e: except Exception as e:
print(e) print(e)

View File

@ -4,7 +4,7 @@ from datetime import timedelta, timezone, datetime
from os import environ, path from os import environ, path
from gql import Client, gql from gql import Client, gql
from gql.transport.httpx import HTTPXAsyncTransport from gql.transport.requests import RequestsHTTPTransport
from services.db import local_session from services.db import local_session
from orm import Topic from orm import Topic
@ -46,7 +46,7 @@ token = environ.get("ACKEE_TOKEN", "")
def create_client(headers=None, schema=None): def create_client(headers=None, schema=None):
return Client( return Client(
schema=schema, schema=schema,
transport=HTTPXAsyncTransport( transport=RequestsHTTPTransport(
url="https://ackee.discours.io/api", url="https://ackee.discours.io/api",
headers=headers, headers=headers,
), ),