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.encoding import force_text
|
||||
from django.db import IntegrityError
|
||||
from django.contrib.gis.geos import Point
|
||||
|
||||
from rest_framework import status
|
||||
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 companies.models import Company
|
||||
from geo.models import City
|
||||
|
||||
from . import models
|
||||
from . import serializers as core_serializers
|
||||
@@ -121,7 +123,9 @@ def create_company_user(request):
|
||||
'short_name': request.data['company']['short_name'],
|
||||
'web_link': request.data['company']['web_link'],
|
||||
'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:
|
||||
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)
|
||||
|
||||
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:
|
||||
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.company = company
|
||||
|
||||
Reference in New Issue
Block a user