[ADD] user account registration endpoint for api-docs

Added alias for /user_api endpoints

FIX quality violations

IMPROVED urls_common for readability

Removed redundant URL entry from urls_common file
This commit is contained in:
Jayram
2020-09-18 21:07:33 +05:30
committed by Jayram Nai
parent 4047a72701
commit 5a9e12dd96
14 changed files with 527 additions and 640 deletions

View File

@@ -30,7 +30,7 @@ urlpatterns = [
url(
r'^user_api/v1/preferences/email_opt_in/$',
user_api_views.UpdateEmailOptInPreference.as_view(),
name="preferences_email_opt_in"
name="preferences_email_opt_in_legacy"
),
url(
r'^user_api/v1/preferences/time_zones/$',

View File

@@ -61,9 +61,9 @@ from ..tests.factories import UserPreferenceFactory
from ..tests.test_constants import SORTED_COUNTRIES
from .test_helpers import TestCaseForm
USER_LIST_URI = "/user_api/v1/users/"
USER_PREFERENCE_LIST_URI = "/user_api/v1/user_prefs/"
ROLE_LIST_URI = "/user_api/v1/forum_roles/Moderator/users/"
USER_LIST_URI = "/api/user/v1/users/"
USER_PREFERENCE_LIST_URI = "/api/user/v1/user_prefs/"
ROLE_LIST_URI = "/api/user/v1/forum_roles/Moderator/users/"
class UserAPITestCase(ApiTestCase):
@@ -514,7 +514,7 @@ class PreferenceUsersListViewTest(UserApiTestCase):
"""
Test cases covering the list viewing behavior for user preferences
"""
LIST_URI = "/user_api/v1/preferences/key0/users/"
LIST_URI = "/api/user/v1/preferences/key0/users/"
def test_options(self):
self.assertAllowedMethods(self.LIST_URI, ["OPTIONS", "GET", "HEAD"])
@@ -676,8 +676,8 @@ class CountryTimeZoneListViewTest(UserApiTestCase):
"""
Test cases covering the list viewing behavior for country time zones
"""
ALL_TIME_ZONES_URI = "/user_api/v1/preferences/time_zones/"
COUNTRY_TIME_ZONES_URI = "/user_api/v1/preferences/time_zones/?country_code=cA"
ALL_TIME_ZONES_URI = "/api/user/v1/preferences/time_zones/"
COUNTRY_TIME_ZONES_URI = "/api/user/v1/preferences/time_zones/?country_code=cA"
@ddt.data(ALL_TIME_ZONES_URI, COUNTRY_TIME_ZONES_URI)
def test_options(self, country_uri):

View File

@@ -4,7 +4,8 @@ Defines the URL routes for this app.
from django.conf import settings
from django.conf.urls import url
from django.conf.urls import include, url
from rest_framework import routers
from ..profile_images.views import ProfileImageView
from .accounts.views import (
@@ -17,6 +18,8 @@ from .accounts.views import (
LMSAccountRetirementView,
UsernameReplacementView
)
from . import views as user_api_views
from .models import UserPreference
from .preferences.views import PreferencesDetailView, PreferencesView
from .verification_api.views import IDVerificationStatusView, IDVerificationStatusDetailsView
@@ -70,6 +73,10 @@ RETIREMENT_LMS_POST = LMSAccountRetirementView.as_view({
'post': 'post',
})
USER_API_ROUTER = routers.DefaultRouter()
USER_API_ROUTER.register(r'users', user_api_views.UserViewSet)
USER_API_ROUTER.register(r'user_prefs', user_api_views.UserPreferenceViewSet)
urlpatterns = [
url(
r'^v1/me$',
@@ -171,4 +178,31 @@ urlpatterns = [
PreferencesDetailView.as_view(),
name='preferences_detail_api'
),
# Moved from user_api/legacy_urls.py
url(r'^v1/', include(USER_API_ROUTER.urls)),
# Moved from user_api/legacy_urls.py
url(
r'^v1/preferences/(?P<pref_key>{})/users/$'.format(UserPreference.KEY_REGEX),
user_api_views.PreferenceUsersListView.as_view()
),
# Moved from user_api/legacy_urls.py
url(
r'^v1/forum_roles/(?P<name>[a-zA-Z]+)/users/$',
user_api_views.ForumRoleUsersListView.as_view()
),
# Moved from user_api/legacy_urls.py
url(
r'^v1/preferences/email_opt_in/$',
user_api_views.UpdateEmailOptInPreference.as_view(),
name="preferences_email_opt_in"
),
# Moved from user_api/legacy_urls.py
url(
r'^v1/preferences/time_zones/$',
user_api_views.CountryTimeZoneListView.as_view(),
),
]

View File

@@ -148,9 +148,9 @@ class CountryTimeZoneListView(generics.ListAPIView):
**Example Requests**
GET /user_api/v1/preferences/time_zones/
GET /api/user/v1/preferences/time_zones/
GET /user_api/v1/preferences/time_zones/?country_code=FR
GET /api/user/v1/preferences/time_zones/?country_code=FR
**Example GET Response**

View File

@@ -23,13 +23,24 @@ urlpatterns = [
url(r'^create_account$', register.RegistrationView.as_view(), name='create_account'),
# Moved from user_api/legacy_urls.py
url(
r'^api/user/v1/account/registration/$',
register.RegistrationView.as_view(),
name="user_api_registration"
),
# `user_api` prefix is preserved for backwards compatibility.
url(r'^user_api/v1/account/registration/$', register.RegistrationView.as_view(),
name="user_api_registration"),
name="user_api_registration_legacy"),
# V2 is created to avoid backward compatibility issue with confirm_email
url(
r'^api/user/v2/account/registration/$',
register.RegistrationView.as_view(),
name="user_api_registration_v2"
),
# legacy url
url(r'^user_api/v2/account/registration/$', register.RegistrationView.as_view(),
name="user_api_registration_v2"),
name="user_api_registration_v2_legacy"),
# Moved from user_api/urls.py
# `api/user` prefix is preserved for backwards compatibility.
@@ -42,9 +53,14 @@ urlpatterns = [
url(r'^login_ajax$', login.login_user, name="login_api"),
# Moved from user_api/legacy_urls.py
url(
r'^api/user/v1/account/login_session/$',
login.LoginSessionView.as_view(),
name="user_api_login_session"
),
# `user_api` prefix is preserved for backwards compatibility.
url(r'^user_api/v1/account/login_session/$', login.LoginSessionView.as_view(),
name="user_api_login_session"),
name="user_api_login_session_legacy"),
# Login Refresh of JWT Cookies
url(r'^login_refresh$', login.login_refresh, name="login_refresh"),
@@ -52,8 +68,14 @@ urlpatterns = [
url(r'^logout$', logout.LogoutView.as_view(), name='logout'),
# Moved from user_api/legacy_urls.py
url(
r'^api/user/v1/account/password_reset/$',
password_reset.PasswordResetView.as_view(),
name="user_api_password_reset"
),
# legacy url
url(r'^user_api/v1/account/password_reset/$', password_reset.PasswordResetView.as_view(),
name="user_api_password_reset"),
name="user_api_password_reset_legacy"),
# Password reset api views.
url(r'^password_reset/$', password_reset.password_reset, name='password_reset'),
@@ -65,8 +87,14 @@ urlpatterns = [
url(r'^account/password$', password_reset.password_change_request_handler, name='password_change_request'),
# logistration MFE flow
url(
r'^api/user/v1/account/password_reset/token/validate/$',
password_reset.PasswordResetTokenValidation.as_view(),
name="user_api_password_reset_token_validate"
),
# legacy url
url(r'^user_api/v1/account/password_reset/token/validate/$', password_reset.PasswordResetTokenValidation.as_view(),
name="user_api_password_reset_token_validate"),
name="user_api_password_reset_token_validate_legacy"),
# logistration MFE reset flow
url(

View File

@@ -581,7 +581,7 @@ class LoginSessionView(APIView):
Example Usage:
POST /user_api/v1/login_session
POST /api/user/v1/login_session
with POST params `email`, `password`.
200 {'success': true}