fix: clear cache when deleting podcast banner

This commit is contained in:
Yassine Doghri 2022-01-23 16:02:24 +00:00
parent 209dfbd134
commit 99bb40b8bc
2 changed files with 30 additions and 0 deletions

View File

@ -65,6 +65,18 @@ class MediaModel extends Model
'updated_by',
];
/**
* clear cache before update if by any chance, the podcast name changes, so will the podcast link
*
* @var string[]
*/
protected $beforeUpdate = ['clearCache'];
/**
* @var string[]
*/
protected $beforeDelete = ['clearCache'];
/**
* Model constructor.
*
@ -166,4 +178,19 @@ class MediaModel extends Model
return $this->delete($media->id, true);
}
/**
* @param mixed[] $data
*
* @return mixed[]
*/
protected function clearCache(array $data): array
{
$mediaId = (is_array($data['id']) ? $data['id'][0] : $data['id']);
cache()
->delete("media#{$mediaId}");
return $data;
}
}

View File

@ -381,6 +381,9 @@ class PodcastController extends BaseController
->withInput()
->with('errors', $mediaModel->errors());
}
(new PodcastModel())->clearCache([
'id' => $this->podcast->id,
]);
// remove banner url from actor
$actor = (new ActorModel())->getActorById($this->podcast->actor_id);