1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 13:34:28 +00:00
royalnet/royalpack/stars/api_bio_set.py

33 lines
801 B
Python

import royalnet.utils as ru
from royalnet.backpack.tables import *
from royalnet.constellation.api import *
from ..tables import Bio
class ApiBioSetStar(ApiStar):
path = "/api/bio/set/v1"
methods = ["PUT"]
summary = "Set the bio of the logged in Royalnet user."
parameters = {
"contents": "The contents of the bio."
}
requires_auth = True
tags = ["bio"]
async def api(self, data: ApiData) -> ru.JSON:
contents = data["contents"]
BioT = self.alchemy.get(Bio)
user = await data.user()
bio = user.bio
if bio is None:
bio = BioT(user=user, contents=contents)
data.session.add(bio)
else:
bio.contents = contents
await data.session_commit()
return bio.json()