def sessions(request, id=None): api = API(request) if id is None: if api.get: # Get a list of sessions sessions = Session.list(user=request.user, filter={"active": True}) return api.respond( sessions, template="sessions/list.html", context={ "sessions": sessions, "types": SessionType.objects.order_by("rank").all(), "images": SessionImage.objects.all(), }, ) elif api.post: # Launch a session for the user session = Session.launch(user=request.user, type_id=api.required("type"), image_name=api.require("image")) return api.respond(session) else: if api.get: # Get a session, updating it first session = Session.get(id=id, user=request.user) if session.active: session.update() return api.respond(session) return api.respond(status=405)