Files
musiclist-server/users/api_views.py
2020-06-27 15:28:31 -04:00

57 lines
1.6 KiB
Python

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()
def user(request, user_id=None):
if request.method == 'GET':
return _get_user(request, user_id)
@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()
def social_networks(request, user_id=None):
if request.method == 'GET':
return _get_social_networks(request, user_id)
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)