def postprocess_chain()

in services/ui_backend_service/api/utils.py [0:0]


def postprocess_chain(postprocess_list: List[Optional[Postprocess]]) -> Optional[Postprocess]:
    if not postprocess_list:
        return None

    async def _chained(input_db_response: DBResponse, invalidate_cache: bool = False) -> DBResponse:
        result = input_db_response
        for _postprocess in postprocess_list:
            if _postprocess is None:
                continue
            if iscoroutinefunction(_postprocess):
                result = await _postprocess(result, invalidate_cache=invalidate_cache)
            else:
                result = _postprocess(result, invalidate_cache=invalidate_cache)
        return result
    return _chained