webhook-fix
This commit is contained in:
parent
519f5e4624
commit
372185e336
|
@ -32,26 +32,27 @@ class WebhookEndpoint(HTTPEndpoint):
|
||||||
f"{user.get('given_name', user.get('slug'))} {user.get('middle_name', '')}"
|
f"{user.get('given_name', user.get('slug'))} {user.get('middle_name', '')}"
|
||||||
+ f"{user.get('family_name', '')}".strip()
|
+ f"{user.get('family_name', '')}".strip()
|
||||||
) or "Аноним"
|
) or "Аноним"
|
||||||
|
user_id: str = user.get("id", "")
|
||||||
email: str = user.get("email", "")
|
email: str = user.get("email", "")
|
||||||
pic: str = user.get("picture", "")
|
pic: str = user.get("picture", "")
|
||||||
|
if user_id:
|
||||||
|
|
||||||
with local_session() as session:
|
with local_session() as session:
|
||||||
author = session.query(Author).filter(Author.email == email).first()
|
author = session.query(Author).filter(Author.user == user_id).first()
|
||||||
if not author:
|
if not author:
|
||||||
user_id: str = user.get("id", "")
|
# If the author does not exist, create a new one
|
||||||
# If the author does not exist, create a new one
|
slug: str = email.split("@")[0].replace(".", "-").lower()
|
||||||
slug: str = email.split("@")[0].replace(".", "-").lower()
|
slug: str = re.sub("[^0-9a-z]+", "-", slug)
|
||||||
slug: str = re.sub("[^0-9a-z]+", "-", slug)
|
while True:
|
||||||
while True:
|
author = (
|
||||||
author = (
|
session.query(Author).filter(Author.slug == slug).first()
|
||||||
session.query(Author).filter(Author.slug == slug).first()
|
)
|
||||||
)
|
if not author:
|
||||||
if not author:
|
break
|
||||||
break
|
slug = f"{slug}-{len(session.query(Author).filter(Author.email == email).all()) + 1}"
|
||||||
slug = f"{slug}-{len(session.query(Author).filter(Author.email == email).all()) + 1}"
|
author = Author(user=user_id, slug=slug, name=name, pic=pic)
|
||||||
author = Author(user=user_id, slug=slug, name=name, pic=pic)
|
session.add(author)
|
||||||
session.add(author)
|
session.commit()
|
||||||
session.commit()
|
|
||||||
|
|
||||||
return JSONResponse({"status": "success"})
|
return JSONResponse({"status": "success"})
|
||||||
except HTTPException as e:
|
except HTTPException as e:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user