room notifications

This commit is contained in:
2025-05-31 22:58:31 +02:00
parent c452a920b1
commit 08a11c240d
4 changed files with 143 additions and 88 deletions

View File

@@ -69,36 +69,39 @@ def add_room_member(room_id):
permission.can_move = permissions.get('can_move', False)
permission.can_share = permissions.get('can_share', False)
db.session.commit()
try:
# Create notification for the invited user
create_notification(
notif_type='room_invite',
user_id=user_id,
sender_id=current_user.id,
details={
'message': f'You have been invited to join room "{room.name}"',
'room_id': room_id,
'room_name': room.name,
'invited_by': f"{current_user.username} {current_user.last_name}",
'permissions': permissions,
'timestamp': datetime.utcnow().isoformat()
}
)
log_event(
event_type='room_member_add',
details={
'room_id': room_id,
'room_name': room.name,
'added_user_id': user_id,
'added_user_name': f"{user.username} {user.last_name}",
'added_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
# Create notification for the invited user
create_notification(
notif_type='room_invite',
user_id=user_id,
sender_id=current_user.id,
details={
'message': f'You have been invited to join room "{room.name}"',
'room_id': room_id,
'room_name': room.name,
'invited_by': f"{current_user.username} {current_user.last_name}",
'permissions': permissions,
'timestamp': datetime.utcnow().isoformat()
}
)
log_event(
event_type='room_member_add',
details={
'room_id': room_id,
'room_name': room.name,
'added_user_id': user_id,
'added_user_name': f"{user.username} {user.last_name}",
'added_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
return jsonify({'success': True})
db.session.commit()
return jsonify({'success': True})
except Exception as e:
db.session.rollback()
return jsonify({'error': str(e)}), 500
@room_members_bp.route('/<int:room_id>/members/<int:user_id>', methods=['DELETE'])
@login_required
@@ -118,35 +121,38 @@ def remove_room_member(room_id, user_id):
if permission:
db.session.delete(permission)
db.session.commit()
try:
# Create notification for the removed user
create_notification(
notif_type='room_invite_removed',
user_id=user_id,
sender_id=current_user.id,
details={
'message': f'You have been removed from room "{room.name}"',
'room_id': room_id,
'room_name': room.name,
'removed_by': f"{current_user.username} {current_user.last_name}",
'timestamp': datetime.utcnow().isoformat()
}
)
log_event(
event_type='room_member_remove',
details={
'room_id': room_id,
'room_name': room.name,
'removed_user_id': user_id,
'removed_user_name': f"{user.username} {user.last_name}",
'removed_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
# Create notification for the removed user
create_notification(
notif_type='room_invite_removed',
user_id=user_id,
sender_id=current_user.id,
details={
'message': f'You have been removed from room "{room.name}"',
'room_id': room_id,
'room_name': room.name,
'removed_by': f"{current_user.username} {current_user.last_name}",
'timestamp': datetime.utcnow().isoformat()
}
)
log_event(
event_type='room_member_remove',
details={
'room_id': room_id,
'room_name': room.name,
'removed_user_id': user_id,
'removed_user_name': f"{user.username} {user.last_name}",
'removed_by': f"{current_user.username} {current_user.last_name}"
},
user_id=current_user.id
)
return jsonify({'success': True})
db.session.commit()
return jsonify({'success': True})
except Exception as e:
db.session.rollback()
return jsonify({'error': str(e)}), 500
@room_members_bp.route('/<int:room_id>/members/<int:user_id>/permissions', methods=['PUT'])
@login_required
@@ -193,5 +199,7 @@ def update_member_permissions(room_id, user_id):
},
user_id=current_user.id
)
db.session.commit()
return jsonify({'success': True})