ki-backend/ki/handlers/update_profile.py

44 lines
1.3 KiB
Python
Raw Normal View History

2021-06-27 11:55:08 +02:00
from flask import make_response, request
2021-06-27 12:20:36 +02:00
from ki.models import Address, User, Profile
2021-06-27 11:55:08 +02:00
from app import db
2021-06-27 12:20:36 +02:00
def update_address(profile, address_data):
address = profile.address
if (address is None):
address = Address(profile=profile)
db.session.add(address)
address.name = address_data.get("name", "")
address.street = address_data.get("street", "")
address.house_number = address_data.get("house_number", "")
address.additional = address_data.get("additional", "")
address.postcode = address_data.get("postcode", "")
address.city = address_data.get("city", "")
address.country = address_data.get("country", "")
2021-06-27 11:55:08 +02:00
def update_profile(user_id):
user = User.query.filter(User.id == int(user_id)).first()
if user is None:
return make_response({}, 404)
profile = user.profile
if (profile is None):
profile = Profile(user=user, nickname=user.auth_id)
db.session.add(profile)
profile.pronouns = request.json.get("pronouns", "")
profile.volunteerwork = request.json.get("volunteerwork", "")
profile.freetext = request.json.get("freetext", "")
2021-06-27 12:20:36 +02:00
update_address(profile, request.json.get("address", {}))
2021-06-27 11:55:08 +02:00
db.session.commit()
return make_response({"profile": profile.to_dict()})