Override Podcast->fromArray

This commit is contained in:
drigato 2015-10-15 08:06:01 -04:00
parent c166b4f00e
commit 40d0619f10
2 changed files with 29 additions and 15 deletions

View File

@ -27,12 +27,12 @@ class Podcast extends BasePodcast
*/
public function toArray($keyType = BasePeer::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false)
{
$podcastArray = parent::toArray(BasePeer::TYPE_FIELDNAME);
$podcastArray = parent::toArray($keyType);
$importedPodcast = ImportedPodcastQuery::create()->filterByDbPodcastId($this->getDbId())->findOne();
$stationPodcast = StationPodcastQuery::create()->filterByDbPodcastId($this->getDbId())->findOne();
if (!is_null($importedPodcast)) {
$importedPodcastArray = $importedPodcast->toArray(BasePeer::TYPE_FIELDNAME);
$importedPodcastArray = $importedPodcast->toArray($keyType);
//unset these values because we already have the podcast id in $podcastArray
//and we don't need the imported podcast ID
@ -43,7 +43,7 @@ class Podcast extends BasePodcast
} else if (!is_null($stationPodcast)) {
// For now just return $podcastArray because StationPodcast objects do not have any
// extra fields we want to return right now. This may change in the future.
// extra fields we want to return. This may change in the future.
return $podcastArray;
} else {
return $podcastArray;
@ -51,4 +51,26 @@ class Podcast extends BasePodcast
}
/**
* Override this function so it updates the child class as well.
* Child class will either be ImportedPodcast or StationPodcast
*
* @param array $arr
* @param string $keyType
* @throws Exception
* @throws PropelException
*/
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
{
parent::fromArray($arr, $keyType);
$importedPodcast = ImportedPodcastQuery::create()->filterByDbPodcastId($this->getDbId())->findOne();
if (!is_null($importedPodcast)) {
$importedPodcast->fromArray($arr, $keyType);
$importedPodcast->save();
} else {
//TODO: station podcast
}
}
}

View File

@ -278,19 +278,11 @@ class Application_Service_PodcastService
throw new PodcastNotFoundException();
}
self::removePrivateFields($data);
self::validatePodcastMetadata($data);
self::removePrivateFields($data["podcast"]);
self::validatePodcastMetadata($data["podcast"]);
$importedPodcast = ImportedPodcastQuery::create()->filterByDbPodcastId($podcast->getDbId())->findOne();
if (!is_null($importedPodcast)) {
$importedPodcast->fromArray($data, BasePeer::TYPE_FIELDNAME);
$importedPodcast->save();
} else {
//TODO: station podcast
}
//$podcast->fromArray($data, BasePeer::TYPE_FIELDNAME);
//$podcast->save();
$podcast->fromArray($data["podcast"], BasePeer::TYPE_FIELDNAME);
$podcast->save();
return $podcast->toArray(BasePeer::TYPE_FIELDNAME);
}