Example #1
0
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)