Source code for agency.api.urls

"""Agency API urls definition."""
from django.urls import path, include, reverse
from django.shortcuts import render
from rest_framework import routers, permissions
from rest_framework.views import APIView
from rest_framework.decorators import api_view, permission_classes
from drf_spectacular import views as openapi
from agency import models as agency
from agency.api import views
from agency.api import threads as thread_views
from agency.api.overlay import UiOverlay
from agency.api.panels import UiPanelDetail, UiPanelList
from agency.display.api import urls as display_urls

app_name = "api"

endpoints = {
    "provider": views.view_set(
        agency.Provider, True, serializer_class=views.provider_serializer()
    ),
    "model": views.view_set(
        agency.Model, True, serializer_class=views.model_serializer()
    ),
    "execution": views.execution_view_set(),
    "interruption": views.interruption_view_set(),
    "workspace": views.workspace_view_set(),
    "document": views.document_view_set(),
    "agent": views.agent_view_set(),
    "mission": views.mission_view_set(),
    "tool": views.tool_view_set(),
    "photo": views.photo_view_set(),
    "task": views.task_view_set(),
    "voices": views.view_set(agency.Voice, False),
    "users": views.user_view_set(),
    "groups": views.group_view_set(),
}

[docs] @api_view(['GET']) @permission_classes([permissions.AllowAny]) def api_index(request, format=None): """Default API index page.""" endpoint_urls = {} for name in endpoints.keys(): endpoint_urls[name] = f"/api/{name}/" context = { 'breadcrumblist': [ ('OpenAPI', reverse('agency:api:schema')), ('Redoc', reverse('agency:api:redoc')), ('Swagger', reverse('agency:api:swagger-ui')), ], 'endpoints': endpoint_urls } return render(request, 'api/index.html', context)
router = routers.SimpleRouter() """DRF router for the API endpoints.""" for name, view in endpoints.items(): router.register(name, view, basename=name) schema_view = openapi.SpectacularAPIView.as_view() schema = {"url_name": "agency:api:schema"} redoc_view = openapi.SpectacularRedocView.as_view(**schema) swagger_view = openapi.SpectacularSwaggerView.as_view(**schema) urlpatterns = [ path("", api_index, name="index"), path("version/", views.Version.as_view(), name="version"), path("system/info/", views.SystemInfo.as_view(), name="system_info"), path("me/prefs/", views.MePrefs.as_view(), name="me_prefs"), path("ui/overlay/", UiOverlay.as_view(), name="ui_overlay"), path("ui/panels/", UiPanelList.as_view(), name="ui_panels"), path("ui/panels/<uuid:panel_id>/", UiPanelDetail.as_view(), name="ui_panel"), path("me/media/", views.MeMedia.as_view(), name="me_media"), path("users/<int:user_id>/prefs/", views.UserPrefsStaff.as_view(), name="user_prefs_staff"), path("users/<int:user_id>/threads/", thread_views.staff_user_threads, name="staff_user_threads"), path("users/<int:user_id>/threads/<uuid:thread_id>/", thread_views.staff_thread_detail, name="staff_thread_detail"), path("agent/<uuid:agent_id>/test/", views.agent_test, name="agent_test"), path("agent/<uuid:agent_id>/threads/", thread_views.agent_thread_list, name="agent_threads"), path("agent/<uuid:agent_id>/messages/", thread_views.agent_messages, name="agent_messages"), path("thread/<uuid:thread_id>/", thread_views.thread_detail, name="thread_detail"), path("thread/<uuid:thread_id>/messages/", thread_views.thread_messages, name="thread_messages"), path("thread/<uuid:thread_id>/activate/", thread_views.thread_activate, name="thread_activate"), path("thread/<uuid:thread_id>/archive/", thread_views.thread_archive, name="thread_archive"), path("mission/<uuid:mission_id>/dispatch/", views.mission_dispatch, name="mission_dispatch"), path("provider/<uuid:provider_id>/sync/", views.provider_sync, name="provider_sync"), path("tool/sync/", views.tool_sync, name="tool_sync"), path("document/<uuid:document_id>/reindex/", views.document_reindex, name="document_reindex"), path("document/<uuid:document_id>/extraction/", views.document_extraction, name="document_extraction"), path("workspace/<uuid:workspace_id>/search/", views.workspace_search, name="workspace_search"), path("workspace/<uuid:workspace_id>/ask/", views.workspace_ask, name="workspace_ask"), path("", include(display_urls)), path("", include(router.urls)), path("schema", schema_view, name="schema"), path("redoc/", redoc_view, name="redoc"), path("swagger-ui/", swagger_view, name="swagger-ui"), ]