Commit 259fe5f6 authored by Yassine Doghri's avatar Yassine Doghri
Browse files

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
parent c94bd7cf
Loading
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);
+3 −2
Original line number Diff line number Diff line
@@ -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',