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_products/', product_views.load_coop_products, name='product-loader'),
|
||||
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_company/', company_views.my_company , name='my-company'),
|
||||
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.utils.http import urlsafe_base64_decode
|
||||
from django.utils.encoding import force_text
|
||||
from django.db import IntegrityError
|
||||
|
||||
from rest_framework import status
|
||||
from rest_framework import viewsets
|
||||
@@ -104,6 +105,48 @@ class UpdateUserView(UpdateAPIView):
|
||||
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',])
|
||||
@permission_classes([IsAuthenticated,])
|
||||
def my_user(request):
|
||||
|
||||
Reference in New Issue
Block a user