50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from database import Session
|
|
from sqlalchemy import and_
|
|
from models import Event
|
|
from flask import Blueprint, request, jsonify
|
|
import sys
|
|
sys.path.append('/workspace')
|
|
|
|
events_bp = Blueprint("events", __name__, url_prefix="/api/events")
|
|
|
|
|
|
@events_bp.route("", methods=["GET"])
|
|
def get_events():
|
|
session = Session()
|
|
start = request.args.get("start")
|
|
end = request.args.get("end")
|
|
# geändert: jetzt group_id statt client_uuid
|
|
group_id = request.args.get("group_id")
|
|
query = session.query(Event).filter(Event.is_active == True)
|
|
if start and end:
|
|
query = query.filter(and_(Event.start < end, Event.end > start))
|
|
if group_id:
|
|
# geändert: filter auf group_id
|
|
query = query.filter(Event.group_id == int(group_id))
|
|
events = query.all()
|
|
result = []
|
|
for e in events:
|
|
result.append({
|
|
"Id": str(e.id),
|
|
"GroupId": e.group_id, # geändert: gibt group_id zurück
|
|
"Subject": e.title,
|
|
"StartTime": e.start.isoformat() if e.start else None,
|
|
"EndTime": e.end.isoformat() if e.end else None,
|
|
"IsAllDay": False,
|
|
})
|
|
session.close()
|
|
return jsonify(result)
|
|
|
|
|
|
@events_bp.route("/<event_id>", methods=["DELETE"])
|
|
def delete_event(event_id):
|
|
session = Session()
|
|
event = session.query(Event).filter_by(id=event_id).first()
|
|
if not event:
|
|
session.close()
|
|
return jsonify({"error": "Termin nicht gefunden"}), 404
|
|
session.delete(event)
|
|
session.commit()
|
|
session.close()
|
|
return jsonify({"success": True})
|