Ejemplo n.º 1
0
 def post(self, user=None):
     """ Add a new entry """
     entry = ControlledVocabulary(**api.payload)
     entry = entry.save()
     return {
         "message": f"Add entry '{entry.name}'",
         "id": str(entry.id)
     }, 201
Ejemplo n.º 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:
            # Select only active entries
            res = ControlledVocabulary.objects(deprecated=False).all()
        else:
            # Include deprecated entries
            res = ControlledVocabulary.objects().all()
        return list(res)
Ejemplo n.º 3
0
    def delete(self, id, user=None):
        """ Delete an entry given its unique identifier """

        args = self._delete_parser.parse_args()

        force_delete = args["complete"]

        entry = ControlledVocabulary.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}'"}
Ejemplo n.º 4
0
    def delete(self, user=None):
        """ Delete all entries"""

        args = self._delete_parser.parse_args()

        force_delete = args["complete"]

        entry = ControlledVocabulary.objects().all()
        if not force_delete:
            entry.update(deprecated=True)
            return {"message": "Deprecate all entries"}
        else:
            entry.delete()
            return {"message": "Delete all entries"}
Ejemplo n.º 5
0
    def get(self):
        """ Get a map for CV items: cv_name: {item_key; item_value} """
        args = self._get_parser.parse_args()

        key = args["key"]
        value = args["value"]

        cv_entries = ControlledVocabulary.objects(deprecated=False).only(
            "name", "items__name", "items__label"
        )

        cv_items_map = {}
        for cv in cv_entries:
            cv_items_map[cv["name"]] = {item[key]: item[value] for item in cv["items"]}

        return cv_items_map
Ejemplo n.º 6
0
 def put(self, id, user=None):
     """ Update an entry given its unique identifier """
     entry = ControlledVocabulary.objects(id=id).get()
     entry.update(**api.payload)
     return {"message": f"Update entry '{entry.name}'"}
Ejemplo n.º 7
0
 def get(self, id):
     """Fetch an entry given its unique identifier"""
     return ControlledVocabulary.objects(id=id).get()