create coop user endpoint
This commit is contained in:
@@ -36,6 +36,7 @@ urlpatterns = [
|
|||||||
path('api/v1/load_coops/', core_views.load_coop_managers, name='coop-loader'),
|
path('api/v1/load_coops/', core_views.load_coop_managers, name='coop-loader'),
|
||||||
path('api/v1/load_products/', product_views.load_coop_products, name='product-loader'),
|
path('api/v1/load_products/', product_views.load_coop_products, name='product-loader'),
|
||||||
path('api/v1/search_products/', product_views.product_search, name='product-search'),
|
path('api/v1/search_products/', product_views.product_search, name='product-search'),
|
||||||
|
path('api/v1/create_company_user/', core_views.create_company_user, name='create-company-user'),
|
||||||
path('api/v1/my_user/', core_views.my_user, name='my-user'),
|
path('api/v1/my_user/', core_views.my_user, name='my-user'),
|
||||||
path('api/v1/my_company/', company_views.my_company , name='my-company'),
|
path('api/v1/my_company/', company_views.my_company , name='my-company'),
|
||||||
path('api/v1/my_products/', product_views.my_products, name='my-products'),
|
path('api/v1/my_products/', product_views.my_products, name='my-products'),
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from django.contrib.auth import get_user_model
|
|||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
from django.utils.http import urlsafe_base64_decode
|
from django.utils.http import urlsafe_base64_decode
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
|
from django.db import IntegrityError
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
@@ -104,6 +105,48 @@ class UpdateUserView(UpdateAPIView):
|
|||||||
serializer_class = core_serializers.UpdateUserSerializer
|
serializer_class = core_serializers.UpdateUserSerializer
|
||||||
|
|
||||||
|
|
||||||
|
@api_view(['POST',])
|
||||||
|
@permission_classes([CustomUserPermissions,])
|
||||||
|
def create_company_user(request):
|
||||||
|
"""
|
||||||
|
Create non-validated company and manager user associated
|
||||||
|
"""
|
||||||
|
user_data = {
|
||||||
|
'email': request.data['user']['email'],
|
||||||
|
'password': request.data['user']['password']
|
||||||
|
}
|
||||||
|
company_data = {
|
||||||
|
'cif': request.data['company']['cif'],
|
||||||
|
'company_name': request.data['company']['company_name'],
|
||||||
|
'short_name': request.data['company']['short_name'],
|
||||||
|
'web_link': request.data['company']['web_link'],
|
||||||
|
'shop': request.data['company']['shop'],
|
||||||
|
'city': request.data['company']['city']
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
user = models.CustomUser.objects.create(email=user_data['email'])
|
||||||
|
except IntegrityError as e:
|
||||||
|
return Response({"errors": {"details": str(e)}}, status=status.HTTP_409_CONFLICT)
|
||||||
|
|
||||||
|
try:
|
||||||
|
company = Company.objects.create(**company_data)
|
||||||
|
except Exception as e:
|
||||||
|
user.delete()
|
||||||
|
return Response({"errors": {"details": str(e)}})
|
||||||
|
|
||||||
|
user.set_password(user_data['password'])
|
||||||
|
user.company = company
|
||||||
|
user.role = 'COOP_MANAGER'
|
||||||
|
user.save()
|
||||||
|
|
||||||
|
company.creator = user
|
||||||
|
company.save()
|
||||||
|
|
||||||
|
serializer = core_serializers.CustomUserSerializer(user)
|
||||||
|
|
||||||
|
return Response(data=serializer.data,status=status.HTTP_201_CREATED)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['GET',])
|
@api_view(['GET',])
|
||||||
@permission_classes([IsAuthenticated,])
|
@permission_classes([IsAuthenticated,])
|
||||||
def my_user(request):
|
def my_user(request):
|
||||||
|
|||||||
Reference in New Issue
Block a user