def _create_feed_update_helper(system_id, feed_id, update_type) -> typing.Optional[int]: feed = feedqueries.get_in_system_by_id(system_id, feed_id) if feed is None: return None feed_update = models.FeedUpdate() feed_update.update_type = update_type feed_update.status = feed_update.Status.SCHEDULED feed_update.feed = feed dbconnection.get_session().add(feed_update) dbconnection.get_session().flush() return feed_update.pk
def list_updates_in_feed(system_id, feed_id): """ List all of the updates for a feed. """ feed = feedqueries.get_in_system_by_id(system_id, feed_id) if feed is None: raise exceptions.IdNotFoundError(models.Feed, system_id=system_id, feed_id=feed_id) response = [] for feed_update in feedqueries.list_updates_in_feed(feed.pk): response.append(views.FeedUpdate.from_model(feed_update)) return response
def get_in_system_by_id(system_id, feed_id) -> views.Feed: """ Get data on a specific feed in a system. """ feed = feedqueries.get_in_system_by_id(system_id, feed_id) if feed is None: raise exceptions.IdNotFoundError(models.Feed, system_id=system_id, feed_id=feed_id) response = views.FeedLarge.from_model(feed) response.updates = views.UpdatesInFeedLink.from_model(feed) end_time = datetime.datetime.utcnow() response.statistics = [] for minutes in [15, 60, 60 * 24]: start_time = end_time - datetime.timedelta(minutes=minutes) response.statistics.append( build_feed_windows([feed.pk], start_time, end_time)[feed.pk]) return response
def test_get_in_system_by_id__no_system(system_1, feed_1_1): assert None is feedqueries.get_in_system_by_id("unknown_id", feed_1_1.id)
def test_get_in_system_by_id(system_1, feed_1_1): assert feed_1_1 == feedqueries.get_in_system_by_id(system_1.id, feed_1_1.id)