🔍 Code Extractor

function get_analysis_session

Maturity: 46

Flask API endpoint that retrieves details of a specific data analysis session for an authenticated user, ensuring the user has access to the requested session.

File:
/tf/active/vicechatdev/vice_ai/new_app.py
Lines:
6051 - 6065
Complexity:
simple

Purpose

This endpoint serves as a secure API route to fetch analysis session information. It validates that the data analysis service is available, authenticates the user, verifies session ownership, and returns the session details in JSON format. It's used in web applications where users need to retrieve their previously created analysis sessions.

Source Code

def get_analysis_session(session_id):
    """Get analysis session details"""
    if not DATA_ANALYSIS_AVAILABLE:
        return jsonify({'error': 'Data analysis service not available'}), 503
    
    user_email = get_current_user()
    
    session = data_analysis_service.get_analysis_session(session_id)
    if not session or session.user_id != user_email:
        return jsonify({'error': 'Session not found or access denied'}), 404
    
    return jsonify({
        'success': True,
        'session': session.to_dict()
    })

Parameters

Name Type Default Kind
session_id - - positional_or_keyword

Parameter Details

session_id: String identifier for the analysis session to retrieve. This is passed as a URL path parameter and uniquely identifies a specific analysis session in the system.

Return Value

Returns a Flask JSON response. On success (200): {'success': True, 'session': <session_dict>} where session_dict contains the serialized session data. On service unavailable (503): {'error': 'Data analysis service not available'}. On not found or unauthorized (404): {'error': 'Session not found or access denied'}.

Dependencies

  • flask
  • data_analysis_service

Required Imports

from flask import jsonify
from data_analysis_service import DataAnalysisService

Usage Example

# Flask application setup
from flask import Flask, jsonify
from data_analysis_service import DataAnalysisService
from auth.azure_auth import AzureSSO
from functools import wraps

app = Flask(__name__)
data_analysis_service = DataAnalysisService()
DATA_ANALYSIS_AVAILABLE = True
azure_sso = AzureSSO()

def require_auth(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        # Authentication logic here
        return f(*args, **kwargs)
    return decorated

def get_current_user():
    return 'user@example.com'

@app.route('/api/analysis-sessions/<session_id>', methods=['GET'])
@require_auth
def get_analysis_session(session_id):
    if not DATA_ANALYSIS_AVAILABLE:
        return jsonify({'error': 'Data analysis service not available'}), 503
    
    user_email = get_current_user()
    
    session = data_analysis_service.get_analysis_session(session_id)
    if not session or session.user_id != user_email:
        return jsonify({'error': 'Session not found or access denied'}), 404
    
    return jsonify({
        'success': True,
        'session': session.to_dict()
    })

# Client usage:
# GET /api/analysis-sessions/abc123
# Response: {"success": true, "session": {...}}

Best Practices

  • Always check DATA_ANALYSIS_AVAILABLE before attempting to use the data analysis service
  • Verify both session existence and user ownership before returning session data to prevent unauthorized access
  • Use appropriate HTTP status codes: 503 for service unavailable, 404 for not found/unauthorized, 200 for success
  • The require_auth decorator must be applied to ensure only authenticated users can access this endpoint
  • The session object must implement a to_dict() method for JSON serialization
  • Consider implementing rate limiting for this endpoint to prevent abuse
  • Log access attempts for security auditing purposes
  • Ensure session_id is validated/sanitized if used in database queries to prevent injection attacks

Similar Components

AI-powered semantic similarity - components with related functionality:

  • function get_session_status 85.0% similar

    Flask API endpoint that retrieves the current status and summary of an analysis session by its ID.

    From: /tf/active/vicechatdev/full_smartstat/app.py
  • function create_data_section_analysis_session 83.9% similar

    Flask API endpoint that creates or retrieves an analysis session for a specific data section, ensuring user ownership and linking the session to the data section.

    From: /tf/active/vicechatdev/vice_ai/new_app.py
  • function export_analysis_content 81.7% similar

    Flask API endpoint that exports analysis session content for integration into documents, with authentication and authorization checks.

    From: /tf/active/vicechatdev/vice_ai/new_app.py
  • function get_analysis_files 80.1% similar

    Flask API endpoint that retrieves files associated with a specific analysis within a session, returning them as a JSON response.

    From: /tf/active/vicechatdev/full_smartstat/app.py
  • function get_results_v1 78.7% similar

    Flask route handler that retrieves and returns statistical analysis results, generated files, and AI-generated interpretations for a given session ID.

    From: /tf/active/vicechatdev/smartstat/app.py
← Back to Browse