コード例 #1
0
    def post(self, user=None):
        """Add a new entry

        The name has to be unique and is internally used as a variable name. The passed string is
        preprocessed before it is inserted into the database. Preprocessing: All characters are converted to
        lower case, the leading and trailing white spaces are removed, and intermediate white spaces are replaced
        with underscores ("_").

        Do not pass a unique identifier since it is generated internally.

        synonyms (optional)

        deprecated (default=False)

        If a data type other than "cv" is added, the controlled_vocabullary is not considered.
        """

        entry = Property(**api.payload)

        # Ensure that a passed controlled vocabulary is valid
        validate_controlled_vocabulary(entry)

        entry = entry.save()
        return {
            "message": f"Add entry '{entry.name}'",
            "id": str(entry.id)
        }, 201
コード例 #2
0
    def get(self):
        """ Fetch a list with all entries """

        # Convert query parameters
        args = self.get_parser.parse_args()
        include_deprecate = args["deprecated"]

        if not include_deprecate:
            entries = Property.objects(deprecated=False).all()
        else:
            # Include entries which are deprecated
            entries = Property.objects().all()
        return list(entries)
コード例 #3
0
    def delete(self, id, user=None):
        """ Deprecates an entry given its unique identifier """

        parser = reqparse.RequestParser()
        parser.add_argument("complete", type=inputs.boolean, default=False)
        args = parser.parse_args()

        force_delete = args["complete"]

        entry = Property.objects(id=id).get()
        if not force_delete:
            entry.update(deprecated=True)
            return {"message": f"Deprecate entry '{entry.name}'"}
        else:
            entry.delete()
            return {"message": f"Delete entry '{entry.name}'"}
コード例 #4
0
    def delete(self, user=None):
        """ Deprecates all entries """

        parser = reqparse.RequestParser()
        parser.add_argument("complete", type=inputs.boolean, default=False)
        args = parser.parse_args()

        force_delete = args["complete"]

        entry = Property.objects().all()
        if not force_delete:
            entry.update(deprecated=True)
            return {"message": "Deprecate all entries"}
        else:
            entry.delete()
            return {"message": "Delete all entries"}
コード例 #5
0
 def put(self, id, user=None):
     """ Update entry given its unique identifier """
     entry = Property.objects(id=id).first()
     entry.update(**api.payload)
     return {"message": f"Update entry '{entry.name}'"}
コード例 #6
0
 def get(self, id):
     """Fetch an entry given its unique identifier"""
     return Property.objects(id=id).get()