from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from .views import *
from rest_framework.schemas import get_schema_view
from rest_auth.registration.views import (SocialAccountListView,
                                          SocialAccountDisconnectView)
from rest_auth.views import PasswordResetConfirmView
from allauth.account.views import *
from rest_framework_jwt.views import obtain_jwt_token
from rest_framework_jwt.views import refresh_jwt_token
from rest_framework_jwt.views import verify_jwt_token
from allauth.account.views import ConfirmEmailView

schema_view = get_schema_view(title='Authentication')
from django.http import HttpResponse


def empty_view(request):
    return HttpResponse('')


router = routers.DefaultRouter()
router.register('users', UserViewSet)
router.register('user-admin', UserAdminViewSet)
router.register('documents', UserDocumentViewSet, basename='userdocument')

urlpatterns = [
    path('', include(router.urls)),
    # path('registration/verify-email/', VerifyEmailView.as_view(), name='rest_verify_email'),
    path('user-exist', user_exist),
    path('auth/', include('rest_auth.urls')),
    path('auth/password/reset/confirm/',
         PasswordResetConfirmView.as_view(),
         name='password_reset_confirm'),
    path('auth/password-reset/<uidb64>/<token>/',
         empty_view,
         name='password_reset_confirm'),
    path('auth/', include('allauth.urls')),
    path('auth/registration/account-confirm-email/<key>',
         ConfirmEmailView,
         name='account_confirm_email'),
    path('auth/registration/inactive',
         account_inactive,
         name="account_inactive"),
    path('auth/registration/', include('rest_auth.registration.urls')),
    path('auth/token/', obtain_jwt_token),
    path('auth/token/refresh/', refresh_jwt_token),
    path('auth/token/verify/', verify_jwt_token),
    # path('auth/facebook/', viewsets.FacebookLogin.as_view(), name='fb_login'),
    # path('auth/twitter/', viewsets.TwitterLogin.as_view(), name='twitter_login'),
    # path('auth/facebook/connect/', viewsets.FacebookConnect.as_view(), name='fb_connect'),
    # path('auth/twitter/connect/', viewsets.TwitterConnect.as_view(), name='twitter_connect'),
    # path('socialaccounts/', SocialAccountListView.as_view(), name='social_account_list'),
    # path('socialaccounts/<pk>/disconnect/', SocialAccountDisconnectView.as_view(),name='social_account_disconnect'),
    path('schema/', schema_view)
]