- Add orgid field (str32, not nullable) to hermes_services table - Replace user_id with orgid in all service CRUD operations (SQL + functions) - Update function signatures: get_all_services, create_service, delete_service, get_service_by_id, test_service_connection, create_session, send_message_to_service, get_session_messages all use orgid - Add orgid indexes: idx_hermes_services_orgid, idx_hermes_services_orgid_status - Add logined_userorgid filtering to CRUD definition for automatic framework-level isolation - Update all .dspy files to use get_userorgid() for org-scoped service queries - Update init/data.json and db_tables.py to reflect orgid field
39 lines
1.4 KiB
Plaintext
39 lines
1.4 KiB
Plaintext
# Create a new session with the selected Hermes service
|
|
# This .dspy file handles the POST request from new_session.ui form submission
|
|
# It receives form data with service_id field
|
|
|
|
try:
|
|
# Extract form data from request context
|
|
form_data = {}
|
|
|
|
# Get data from request.form (standard for POST requests)
|
|
if hasattr(request, 'form'):
|
|
form_data = dict(request.form)
|
|
|
|
# Get required parameters
|
|
service_id = form_data.get('service_id')
|
|
|
|
if not service_id:
|
|
# Redirect back to form with error
|
|
return {"redirect": "/hermes-web-cli/new_session.ui?error=Service+ID+is+required"}
|
|
|
|
# Get current user ID and org ID
|
|
user_id = await get_user()
|
|
orgid = await get_userorgid()
|
|
|
|
# Use the function provided by the hermes-web-cli module
|
|
# Service lookup uses orgid, session ownership uses user_id
|
|
session_result = await create_session(service_id, user_id, orgid, "")
|
|
|
|
if session_result:
|
|
# Redirect to the new session's user interaction page
|
|
return {"redirect": f"/hermes-web-cli/sessions/{session_result}"}
|
|
else:
|
|
# Redirect back to form with error
|
|
return {"redirect": "/hermes-web-cli/new_session.ui?error=Failed+to+create+session"}
|
|
|
|
except Exception as e:
|
|
# Log the error and redirect back with error message
|
|
print(f"Error creating session: {str(e)}")
|
|
return {"redirect": f"/hermes-web-cli/new_session.ui?error=Internal+error:+{str(e)}"}
|