create coop user with geo
This commit is contained in:
@@ -11,6 +11,7 @@ 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 django.db import IntegrityError
|
||||||
|
from django.contrib.gis.geos import Point
|
||||||
|
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
@@ -20,6 +21,7 @@ from rest_framework.generics import UpdateAPIView
|
|||||||
from rest_framework.decorators import api_view, permission_classes
|
from rest_framework.decorators import api_view, permission_classes
|
||||||
|
|
||||||
from companies.models import Company
|
from companies.models import Company
|
||||||
|
from geo.models import City
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
from . import serializers as core_serializers
|
from . import serializers as core_serializers
|
||||||
@@ -121,7 +123,9 @@ def create_company_user(request):
|
|||||||
'short_name': request.data['company']['short_name'],
|
'short_name': request.data['company']['short_name'],
|
||||||
'web_link': request.data['company']['web_link'],
|
'web_link': request.data['company']['web_link'],
|
||||||
'shop': request.data['company']['shop'],
|
'shop': request.data['company']['shop'],
|
||||||
'city': request.data['company']['city']
|
'city': request.data['company']['city'],
|
||||||
|
'geo': request.data['company']['geo'],
|
||||||
|
'address': request.data['company']['address']
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
user = models.CustomUser.objects.create(email=user_data['email'])
|
user = models.CustomUser.objects.create(email=user_data['email'])
|
||||||
@@ -129,10 +133,16 @@ def create_company_user(request):
|
|||||||
return Response({"errors": {"details": str(e)}}, status=status.HTTP_409_CONFLICT)
|
return Response({"errors": {"details": str(e)}}, status=status.HTTP_409_CONFLICT)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
company = Company.objects.create(**company_data)
|
city = company_data.pop('city')
|
||||||
|
city = City.objects.get(name=city)
|
||||||
|
|
||||||
|
geo = company_data.pop('geo')
|
||||||
|
geo = Point(geo['lng'], geo['lat'])
|
||||||
|
|
||||||
|
company = Company.objects.create(**company_data, city=city, geo=geo)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
user.delete()
|
user.delete()
|
||||||
return Response({"errors": {"details": str(e)}})
|
return Response({"errors": {"details": str(e)}}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
|
|
||||||
user.set_password(user_data['password'])
|
user.set_password(user_data['password'])
|
||||||
user.company = company
|
user.company = company
|
||||||
|
|||||||
Reference in New Issue
Block a user