def verdicts(self): Verdict = ApiHandler.model_from_table_name('verdict') VerdictReviewer = ApiHandler.model_from_table_name('verdict_reviewer') verdict_reviewers = VerdictReviewer.query.filter_by( reviewerId=self.reviewerId) verdict_ids = [ verdict_reviewer.verdict.id for verdict_reviewer in verdict_reviewers ] verdicts = Verdict.query.filter(Verdict.id.in_(verdict_ids)).all() return InstrumentedList(verdicts)
def reviews(self): Review = ApiHandler.model_from_table_name('review') verdict_reviewer_ids = [ verdictReviewer.reviewer.id for verdictReviewer in self.verdictReviewers ] reviews = Review.query.filter( (Review.contentId == self.contentId) &\ (Review.reviewerId.in_(verdict_reviewer_ids)) ).all() return InstrumentedList(reviews)
def keep_not_saved_trendings(trendings, table_name): model = ApiHandler.model_from_table_name(table_name) identifier_key = 'buzzsumoIdentifier' if table_name == 'content' \ else 'poynterIdentifier' already_saved_identifiers = [ str(trending[identifier_key]) for trending in trendings ] is_already_saved_query = getattr( model, identifier_key).in_(already_saved_identifiers) already_saved_entities = model.query \ .filter(is_already_saved_query) \ .all() saved_source_ids = [ getattr(saved_entity, identifier_key) for saved_entity in already_saved_entities ] return [ trending for trending in trendings if trending[identifier_key] not in saved_source_ids ]
def get_graph(collection_name, entity_id): table_name = inflect.engine().singular_noun(collection_name) model = ApiHandler.model_from_table_name(table_name) entity = load_or_404(model, entity_id) graph = graph_from_entity(entity, shortcutted_types=SHORTCUTTED_TYPES) return jsonify(graph), 200