From 6c0055895c2af243ed5722d100f37c474d0c12dd Mon Sep 17 00:00:00 2001 From: Duncan Sommerville Date: Wed, 21 Oct 2015 11:18:33 -0400 Subject: [PATCH] Set auto ingest timestamp when updating --- .../application/common/PodcastManager.php | 2 +- .../application/services/PodcastService.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/common/PodcastManager.php b/airtime_mvc/application/common/PodcastManager.php index 4ea010c02..7336fd09d 100644 --- a/airtime_mvc/application/common/PodcastManager.php +++ b/airtime_mvc/application/common/PodcastManager.php @@ -30,7 +30,7 @@ class PodcastManager { $service = new Application_Service_PodcastEpisodeService(); foreach ($autoIngestPodcasts as $podcast) { $episodes = static::_findUningestedEpisodes($podcast, $service); - $podcast->setDbAutoIngestTimestamp(date('r'))->save(); + $podcast->setDbAutoIngestTimestamp(gmdate('r'))->save(); $service->downloadEpisodes($episodes); } diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index d7f977916..8991d8dcf 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -309,6 +309,7 @@ class Application_Service_PodcastService self::removePrivateFields($data["podcast"]); self::validatePodcastMetadata($data["podcast"]); + self::_updateAutoIngestTimestamp($podcast, $data); $podcast->fromArray($data["podcast"], BasePeer::TYPE_FIELDNAME); $podcast->save(); @@ -316,6 +317,21 @@ class Application_Service_PodcastService return $podcast->toArray(BasePeer::TYPE_FIELDNAME); } + /** + * Update the automatic ingestion timestamp for the given Podcast + * + * @param Podcast $podcast Podcast object to update + * @param array $data Podcast update data array + */ + private static function _updateAutoIngestTimestamp($podcast, $data) { + // Get podcast data with lazy loaded columns since we can't directly call getDbAutoIngest() + $currData = $podcast->toArray(BasePeer::TYPE_FIELDNAME, true); + // Add an auto-ingest timestamp when turning auto-ingest on + if ($data["podcast"]["auto_ingest"] == 1 && $currData["auto_ingest"] != 1) { + $data["podcast"]["auto_ingest_timestamp"] = gmdate('r'); + } + } + private static function removePrivateFields(&$data) { foreach (self::$privateFields as $key) {