Esempio n. 1
0
        def fn_create():
            """Creates a new resource and returns it."""

            if request.method == "OPTIONS":
                return

            request_doc = json.loads(request.body.getvalue())
            JsonAPIValidator.validate_create(request_doc,
                                             self.model._meta.name)

            self.listener.before_create(request)

            attributes = {}

            if "attributes" in request_doc["data"]:
                attributes = request_doc["data"]["attributes"]

            if "relationships" in request_doc["data"]:
                for k, dat in request_doc["data"]["relationships"].iteritems():
                    attributes[k] = dat["data"]["id"]

            if "id" in request_doc["data"]:
                primary = self.model._meta.primary_key.name
                attributes[primary] = request_doc["data"]["id"]

            created = self.model.create(**attributes)

            self.listener.after_create(created)

            response.set_header(
                "Location", "{}/{}".format(request.url,
                                           util.get_primary_key(created)))

            return self.__get(util.get_primary_key(created))
Esempio n. 2
0
        def fn_create():
            """Creates a new resource and returns it."""

            if request.method == "OPTIONS":
                return

            request_doc = json.loads(request.body.getvalue())
            JsonAPIValidator.validate_create(
                request_doc,
                self.model._meta.name
            )

            self.listener.before_create(request)

            attributes = {}

            if "attributes" in request_doc["data"]:
                attributes = request_doc["data"]["attributes"]

            if "relationships" in request_doc["data"]:
                for k, dat in request_doc["data"]["relationships"].iteritems():
                    attributes[k] = dat["data"]["id"]

            if "id" in request_doc["data"]:
                primary = self.model._meta.primary_key.name
                attributes[primary] = request_doc["data"]["id"]

            created = self.model.create(**attributes)

            self.listener.after_create(created)

            response.set_header("Location", "{}/{}".format(
                request.url,
                util.get_primary_key(created))
            )

            return self.__get(util.get_primary_key(created))