fix(platforms): trim platform url before validation and storage

--> Having a URL with spaces in the beginning or end would cause the platform to be deleted
This commit is contained in:
Yassine Doghri 2022-11-01 15:15:39 +00:00
parent c94bd7cf81
commit 259fe5f697
2 changed files with 10 additions and 2 deletions

View File

@ -145,6 +145,8 @@ class PlatformModel extends Model
/**
* @param mixed[] $podcastsPlatformsData
*
* @return int|false Number of rows inserted or FALSE on failure
*/
public function savePodcastPlatforms(
int $podcastId,
@ -165,6 +167,11 @@ class PlatformModel extends Model
$this->db->query($deleteJoinQuery, [$podcastId, $platformType]);
if ($podcastsPlatformsData === []) {
// no rows inserted
return 0;
}
return $this->db
->table('podcasts_platforms')
->insertBatch($podcastsPlatformsData);

View File

@ -70,7 +70,7 @@ class PodcastPlatformController extends BaseController
$this->request->getPost('platforms')
as $platformSlug => $podcastPlatform
) {
$podcastPlatformUrl = $podcastPlatform['url'];
$podcastPlatformUrl = trim((string) $podcastPlatform['url']);
if ($podcastPlatformUrl === null) {
continue;
}
@ -79,11 +79,12 @@ class PodcastPlatformController extends BaseController
continue;
}
$podcastPlatformAccountId = trim((string) $podcastPlatform['account_id']);
$podcastsPlatformsData[] = [
'platform_slug' => $platformSlug,
'podcast_id' => $this->podcast->id,
'link_url' => $podcastPlatformUrl,
'account_id' => $podcastPlatform['account_id'] === '' ? null : $podcastPlatform['account_id'],
'account_id' => $podcastPlatformAccountId === '' ? null : $podcastPlatformAccountId,
'is_visible' =>
array_key_exists('visible', $podcastPlatform) &&
$podcastPlatform['visible'] === 'yes',