function delete_text_section
Flask API endpoint that deletes a text section after verifying user ownership and authentication.
/tf/active/vicechatdev/vice_ai/new_app.py
688 - 707
moderate
Purpose
This function serves as a REST API endpoint to delete a text section from the system. It authenticates the user, verifies they own the text section being deleted, and then performs the deletion through the text_section_service. It handles authorization, error cases, and returns appropriate HTTP responses.
Source Code
def delete_text_section(section_id):
"""Delete a text section"""
user_email = get_current_user()
# Verify ownership
text_section = text_section_service.get_text_section(section_id)
if not text_section or text_section.owner != user_email:
return jsonify({'error': 'Text section not found or access denied'}), 404
try:
success = text_section_service.delete_text_section(section_id)
if success:
return jsonify({'success': True})
else:
return jsonify({'error': 'Failed to delete text section'}), 500
except Exception as e:
logger.error(f"Error deleting text section: {e}")
return jsonify({'error': str(e)}), 400
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
section_id |
- | - | positional_or_keyword |
Parameter Details
section_id: String identifier for the text section to be deleted. This is extracted from the URL path parameter and used to locate the specific text section in the database.
Return Value
Returns a Flask JSON response tuple. On success: ({'success': True}, 200). On not found/unauthorized: ({'error': 'Text section not found or access denied'}, 404). On deletion failure: ({'error': 'Failed to delete text section'}, 500). On exception: ({'error': <error_message>}, 400). Each return is a tuple of (json_response, http_status_code).
Dependencies
flasklogging
Required Imports
from flask import jsonify
import logging
Usage Example
# This is a Flask route handler, typically called via HTTP DELETE request
# Example HTTP request:
# DELETE /api/text_sections/abc123
# Headers: Authorization: Bearer <token>
# Example using requests library:
import requests
section_id = 'abc123'
auth_token = 'your_auth_token'
response = requests.delete(
f'http://your-app.com/api/text_sections/{section_id}',
headers={'Authorization': f'Bearer {auth_token}'}
)
if response.status_code == 200:
print('Text section deleted successfully')
print(response.json()) # {'success': True}
elif response.status_code == 404:
print('Text section not found or access denied')
else:
print(f'Error: {response.json()}')
Best Practices
- Always verify user authentication before processing the deletion request
- Verify ownership of the resource before allowing deletion to prevent unauthorized access
- Use try-except blocks to handle potential service layer exceptions gracefully
- Return appropriate HTTP status codes (404 for not found, 500 for server errors, 400 for bad requests)
- Log errors for debugging and monitoring purposes
- The function supports two URL patterns (/api/text_sections/ and /api/text-sections/) for flexibility
- Ensure the text_section_service is properly initialized before the route is accessed
- Consider implementing soft deletes instead of hard deletes for data recovery purposes
- The require_auth decorator must be properly configured to handle authentication failures
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
function delete_data_section 86.2% similar
-
function api_delete_section 82.6% similar
-
function clear_text_section_chat 80.9% similar
-
function create_text_section 77.8% similar
-
function revert_text_section 77.6% similar