Source code for maeser.controllers.new_session_api

"""
This module handles API requests for creating new chat sessions.

It uses the ChatSessionManager to manage session creation and optionally integrates
with user management through Flask-Login's current_user.

© 2024 Carson Bush, Blaine Freestone

This file is part of Maeser.

Maeser is free software: you can redistribute it and/or modify it under the terms of
the GNU Lesser General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.

Maeser is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with
Maeser. If not, see <https://www.gnu.org/licenses/>.
"""

from maeser.chat.chat_session_manager import ChatSessionManager
from flask import request
from flask_login import current_user

[docs] def controller(session_handler: ChatSessionManager, user_management: bool = False): """ Handle session requests. Args: session_handler (ChatSessionManager): The session handler instance. user_management (bool): Flag to indicate if user management is enabled. Returns: dict: Response confirming session action or an error message. """ posty = request.get_json() branch_action = posty['action'] if posty['type'] == 'new': if user_management: return {'response': session_handler.get_new_session_id(branch_action, current_user)} # type: ignore return {'response': session_handler.get_new_session_id(branch_action)} return {'response': 'invalid', 'details': 'Requested session type is not valid'}