Issue #3 Api para obtener datos de usuario
This commit is contained in:
@@ -9,6 +9,7 @@ urlpatterns = [
|
|||||||
path('oauth/', include('oauth2_provider.urls', namespace='oauth2_provider')),
|
path('oauth/', include('oauth2_provider.urls', namespace='oauth2_provider')),
|
||||||
path('auth/', include('users.urls')),
|
path('auth/', include('users.urls')),
|
||||||
path('api/brainz/', include('fetcher.urls')),
|
path('api/brainz/', include('fetcher.urls')),
|
||||||
|
path('api/users/', include('users.api_urls')),
|
||||||
]
|
]
|
||||||
|
|
||||||
handler400 = 'views.views.handle400'
|
handler400 = 'views.views.handle400'
|
||||||
|
|||||||
11
users/api_urls.py
Normal file
11
users/api_urls.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
from django.urls import path
|
||||||
|
|
||||||
|
from users import api_views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('user/', api_views.get_user),
|
||||||
|
path('user/<int:user_id>', api_views.get_user),
|
||||||
|
|
||||||
|
path('user/social_networks', api_views.get_social_networks),
|
||||||
|
path('user/<int:user_id>/social_networks', api_views.get_social_networks)
|
||||||
|
]
|
||||||
48
users/api_views.py
Normal file
48
users/api_views.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
from django.http import JsonResponse
|
||||||
|
from django.views.decorators.http import require_GET
|
||||||
|
from oauth2_provider.decorators import protected_resource
|
||||||
|
|
||||||
|
from users.models import User, SocialNetworks
|
||||||
|
|
||||||
|
|
||||||
|
@protected_resource()
|
||||||
|
@require_GET
|
||||||
|
def get_user(request, user_id=None):
|
||||||
|
user = request.user
|
||||||
|
|
||||||
|
if user_id is not None:
|
||||||
|
user = User.objects.filter(pk=user_id)
|
||||||
|
if user.count() != 1:
|
||||||
|
return JsonResponse({'status': 404, 'error': f'No existe un usuario con id {user_id}'})
|
||||||
|
user = user[0]
|
||||||
|
|
||||||
|
encoded_user = {
|
||||||
|
'id': user.id,
|
||||||
|
'username': user.username,
|
||||||
|
'email': user.email,
|
||||||
|
}
|
||||||
|
|
||||||
|
return JsonResponse(encoded_user)
|
||||||
|
|
||||||
|
|
||||||
|
@protected_resource()
|
||||||
|
@require_GET
|
||||||
|
def get_social_networks(request, user_id=None):
|
||||||
|
if user_id is None:
|
||||||
|
user_id = request.user.id
|
||||||
|
|
||||||
|
social_networks = SocialNetworks.objects.filter(user_id=user_id)
|
||||||
|
if social_networks.count() != 1:
|
||||||
|
return JsonResponse({'status': 404, 'error': f'No existe redes sociales de un usuario con id {user_id}'})
|
||||||
|
|
||||||
|
social_networks = social_networks[0]
|
||||||
|
|
||||||
|
encoded_social_networks = {
|
||||||
|
'twitter': social_networks.twitter,
|
||||||
|
'facebook': social_networks.facebook,
|
||||||
|
'instagram': social_networks.instagram,
|
||||||
|
'youtube': social_networks.youtube,
|
||||||
|
'twitch': social_networks.twitch
|
||||||
|
}
|
||||||
|
|
||||||
|
return JsonResponse(encoded_social_networks)
|
||||||
Reference in New Issue
Block a user