"""
URL mappings for LTI Consumer plugin.
"""


from django.conf import settings
from django.conf.urls import url, include

from rest_framework import routers

from lti_consumer.plugin.views import (
    public_keyset_endpoint,
    launch_gate_endpoint,
    access_token_endpoint,
    # LTI Advantage URLs
    LtiAgsLineItemViewset,
    deep_linking_response_endpoint,
    deep_linking_content_endpoint,
)


# LTI 1.3 APIs router
router = routers.SimpleRouter(trailing_slash=False)
router.register(r'lti-ags', LtiAgsLineItemViewset, basename='lti-ags-view')


app_name = 'lti_consumer'
urlpatterns = [
    url(
        f'lti_consumer/v1/public_keysets/{settings.USAGE_ID_PATTERN}$',
        public_keyset_endpoint,
        name='lti_consumer.public_keyset_endpoint'
    ),
    url(
        'lti_consumer/v1/launch/(?:/(?P<suffix>.*))?$',
        launch_gate_endpoint,
        name='lti_consumer.launch_gate'
    ),
    url(
        f'lti_consumer/v1/token/{settings.USAGE_ID_PATTERN}$',
        access_token_endpoint,
        name='lti_consumer.access_token'
    ),
    url(
        r'lti_consumer/v1/lti/(?P<lti_config_id>[-\w]+)/lti-dl/response',
        deep_linking_response_endpoint,
        name='lti_consumer.deep_linking_response_endpoint'
    ),
    url(
        r'lti_consumer/v1/lti/(?P<lti_config_id>[-\w]+)/lti-dl/content',
        deep_linking_content_endpoint,
        name='lti_consumer.deep_linking_content_endpoint'
    ),
    url(
        r'lti_consumer/v1/lti/(?P<lti_config_id>[-\w]+)/',
        include(router.urls)
    ),
]