requests-removed+fixes

This commit is contained in:
2023-10-05 22:18:05 +03:00
parent fbc85f6c2d
commit b8e6f7bb5a
9 changed files with 23 additions and 57 deletions

View File

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

View File

@@ -11,7 +11,7 @@ from auth.tokenstorage import TokenStorage
# from base.exceptions import InvalidPassword, InvalidToken
from services.db import local_session
from orm import User
from validations.auth import AuthInput
from auth.validators import AuthInput
class Password:

View File

@@ -1,7 +1,7 @@
from datetime import datetime, timezone
import jwt
from services.exceptions import ExpiredToken, InvalidToken
from validations.auth import TokenPayload, AuthInput
from auth.validators import TokenPayload, AuthInput
from settings import JWT_ALGORITHM, JWT_SECRET_KEY

View File

@@ -1,7 +1,7 @@
from datetime import datetime, timedelta, timezone
from auth.jwtcodec import JWTCodec
from validations.auth import AuthInput
from auth.validators import AuthInput
from services.redis import redis
from settings import SESSION_TOKEN_LIFE_SPAN, ONETIME_TOKEN_LIFE_SPAN

17
auth/validators.py Normal file
View File

@@ -0,0 +1,17 @@
from typing import Optional, Text
from pydantic import BaseModel
class AuthInput(BaseModel):
id: Optional[int]
email: Optional[Text]
phone: Optional[Text]
password: Optional[Text]
class TokenPayload(BaseModel):
user_id: int
username: Optional[Text]
exp: int
iat: int
iss: Text