def get_nzb_downloads(page=0, limit=100, filterModel=None, sortModel=None): columnNameToEntityMap = { "time": IndexerApiAccess.time, "indexer": Indexer.name, "title": IndexerNzbDownload.title, "access": IndexerNzbDownload.internal, "successful": IndexerApiAccess.response_successful, "username": IndexerApiAccess.username } query = IndexerNzbDownload() \ .select(Indexer.name.alias("indexerName"), IndexerNzbDownload.title, IndexerApiAccess.time, IndexerNzbDownload.internal, SearchResult.id.alias('searchResultId'), SearchResult.details.alias('detailsLink'), IndexerApiAccess.response_successful, IndexerApiAccess.username) \ .switch(IndexerNzbDownload).join(IndexerApiAccess, JOIN.LEFT_OUTER).join(Indexer, JOIN.LEFT_OUTER) \ .switch(IndexerNzbDownload).join(SearchResult, JOIN.LEFT_OUTER) query = extendQueryWithFilter(columnNameToEntityMap, filterModel, query) query = extendQueryWithSorting(columnNameToEntityMap, query, sortModel, IndexerApiAccess.time.desc()) total_downloads = query.count() nzb_downloads = list(query.paginate(page, limit).dicts()) downloads = { "totalDownloads": total_downloads, "nzbDownloads": nzb_downloads } return downloads
def get_nzb_downloads(page=0, limit=100, filterModel=None, sortModel=None): columnNameToEntityMap = { "time": IndexerApiAccess.time, "indexer": Indexer.name, "title": IndexerNzbDownload.title, "access": IndexerNzbDownload.internal, "successful": IndexerApiAccess.response_successful, "username": IndexerApiAccess.username } query = IndexerNzbDownload() \ .select(Indexer.name.alias("indexerName"), IndexerNzbDownload.title, IndexerApiAccess.time, IndexerNzbDownload.internal, SearchResult.id.alias('searchResultId'), SearchResult.details.alias('detailsLink'), IndexerApiAccess.response_successful, IndexerApiAccess.username) \ .switch(IndexerNzbDownload).join(IndexerApiAccess, JOIN.LEFT_OUTER).join(Indexer, JOIN.LEFT_OUTER) \ .switch(IndexerNzbDownload).join(SearchResult, JOIN.LEFT_OUTER) query = extendQueryWithFilter(columnNameToEntityMap, filterModel, query) query = extendQueryWithSorting(columnNameToEntityMap, query, sortModel, IndexerApiAccess.time.desc()) total_downloads = query.count() nzb_downloads = list(query.paginate(page, limit).dicts()) downloads = {"totalDownloads": total_downloads, "nzbDownloads": nzb_downloads} return downloads