2020from flask import jsonify , request , Blueprint
2121from app .api .helpers .errors import NotFoundError
2222from sqlalchemy .orm .exc import NoResultFound
23+ from datetime import datetime
2324
2425
2526role_invites_misc_routes = Blueprint ('role_invites_misc' , __name__ , url_prefix = '/v1' )
@@ -154,8 +155,8 @@ def accept_invite():
154155 except NoResultFound :
155156 return NotFoundError ({'source' : '' }, 'Role corresponding to role invite not Found' ).respond ()
156157 event = Event .query .filter_by (id = role_invite .event_id ).first ()
157- uer = UsersEventsRoles .query .filter_by (user = user ).filter_by (
158- event = event ).filter_by (role = role ).first ()
158+ uer = UsersEventsRoles .query .filter_by (user = user ).filter_by (event = event ). filter_by (
159+ role = role ).filter_by (deleted_at = None ).first ()
159160 if not uer :
160161 role_invite .status = "accepted"
161162 save_to_db (role_invite , 'Role Invite Accepted' )
@@ -164,6 +165,11 @@ def accept_invite():
164165 if not user .is_verified :
165166 user .is_verified = True
166167 save_to_db (user , 'User verified' )
168+ if role_invite .role_name == 'owner' :
169+ previous_uer = UsersEventsRoles .query .filter_by (event = event ).filter_by (role = role ).filter_by (
170+ deleted_at = None ).first ()
171+ previous_uer .deleted_at = datetime .utcnow ()
172+ save_to_db (previous_uer , 'Past Owner deleted' )
167173
168174 return jsonify ({
169175 "email" : user .email ,
0 commit comments