def post(self, request): data = request.DATA try: username = data["username"] password = data["password"] except KeyError as e: return Response({"error": "Invalid object."}, status=status.HTTP_400_BAD_REQUEST, exception=True) #todo: validate username and password user = User.objects.create_user(username = username, password = password) new_user = AppUser(user = user, app = request.app) try: new_user.full_clean() except ValidationError as e: return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST) new_user.save() user = authenticate(username=username, password=password) login(request, user) request.session.save() return Response({settings.SESSION_COOKIE_NAME : request.session.session_key, "id" : user.id }, status=status.HTTP_201_CREATED)
def post(self, request): try: #todo: update first_name, last_name and other attributes stream = StringIO.StringIO(request.body) data = JSONParser().parse(stream) username = data["username"] password = data["password"] except Exception as e: self.logger.error("Unable to decode object. Error: %s"%str(e)) return Response({"detail": "Invalid object."}, status=status.HTTP_400_BAD_REQUEST, exception=True) app = request.META['app'] #todo: validate username and password user = User.objects.create_user(username = username, password = password) new_user = AppUser(user = user, app = app) try: new_user.full_clean() except ValidationError as e: return Response(e.message_dict, status=status.HTTP_400_BAD_REQUEST) new_user.save() user = authenticate(username=data["username"], password=data["password"]) login(request, user) request.session.save() return Response({settings.SESSION_COOKIE_NAME : request.session.session_key, "id" : user.id }, status=status.HTTP_201_CREATED)