Beispiel #1
0
class GetTypeEntities(Resource):
    @staticmethod
    @swag_from("../swagger/type_entities.yml", endpoint="api_03.type_entities")
    def get(id_: int) -> Union[tuple[Resource, int], Response, dict[str, Any]]:
        if id_ not in g.types:
            raise InvalidSubunitError
        if not (entities := g.types[id_].get_linked_entities(
            ['P2', 'P89'], inverse=True, types=True)):
            entities = get_entities_linked_to_special_type(id_)
        return resolve_entities(entities, entity_.parse_args(), id_)
Beispiel #2
0
class GetTypeEntitiesAll(Resource):
    @staticmethod
    @swag_from("../swagger/type_entities_all.yml",
               endpoint="api_03.type_entities_all")
    def get(id_: int) -> Union[tuple[Resource, int], Response, dict[str, Any]]:
        if id_ not in g.types:
            raise InvalidSubunitError
        if not (entities := get_entities_linked_to_type_recursive(id_, [])):
            entities = get_entities_by_ids(
                get_entities_linked_to_special_type_recursive(id_, []))
        return resolve_entities(entities, entity_.parse_args(), id_)
Beispiel #3
0
 def get() -> Union[tuple[Resource, int], Response, dict[str, Any]]:
     parser = query.parse_args()
     if not any([
             parser['entities'], parser['cidoc_classes'],
             parser['view_classes'], parser['system_classes']
     ]):
         raise QueryEmptyError
     entities = []
     if parser['entities']:
         entities.extend(get_entities_by_ids(parser['entities']))
     if parser['view_classes']:
         entities.extend(
             get_entities_by_view_classes(parser['view_classes']))
     if parser['system_classes']:
         entities.extend(
             get_entities_by_system_classes(parser['system_classes']))
     if parser['cidoc_classes']:
         entities.extend(get_by_cidoc_classes(parser['cidoc_classes']))
     return resolve_entities(entities, parser, 'query')
Beispiel #4
0
 def get(latest: int) \
         -> Union[tuple[Resource, int], Response, dict[str, Any]]:
     if not 0 < latest < 101:
         raise InvalidLimitError
     return resolve_entities(Entity.get_latest(latest),
                             entity_.parse_args(), latest)
Beispiel #5
0
 def get(id_: int) -> Union[tuple[Resource, int], Response, dict[str, Any]]:
     return resolve_entities(get_linked_entities_api(id_),
                             entity_.parse_args(), 'linkedEntities')
Beispiel #6
0
 def get(view_class: str) \
         -> Union[tuple[Resource, int], Response, dict[str, Any]]:
     return resolve_entities(get_entities_by_view_classes([view_class]),
                             entity_.parse_args(), view_class)