Commit 02132dc4 authored by Yassine Doghri's avatar Yassine Doghri
Browse files

fix(persons): set roles field as optional + set `Cast > Host` as default value

fixes #347
parent 642981fd
Loading
Loading
Loading
Loading
+27 −26
Original line number Diff line number Diff line
@@ -280,8 +280,8 @@ class PersonModel extends Model
    /**
     * Add persons to podcast
     *
     * @param array<string> $personIds
     * @param array<string, string> $roles
     * @param int[] $personIds
     * @param string[] $roles
     *
     * @return bool|int Number of rows inserted or FALSE on failure
     */
@@ -300,9 +300,12 @@ class PersonModel extends Model
        $data = [];
        foreach ($personIds as $personId) {
            if ($roles === []) {
                // add to default group (cast) and role (host), see https://podcastindex.org/namespace/1.0#person
                $data[] = [
                    'podcast_id'   => $podcastId,
                    'person_id'    => $personId,
                    'person_group' => 'cast',
                    'person_role'  => 'host',
                ];
            }

@@ -347,16 +350,12 @@ class PersonModel extends Model
     * Add persons to episode
     *
     * @param int[] $personIds
     * @param string[] $groupsRoles
     * @param string[] $roles
     *
     * @return bool|int Number of rows inserted or FALSE on failure
     */
    public function addEpisodePersons(
        int $podcastId,
        int $episodeId,
        array $personIds,
        array $groupsRoles
    ): bool | int {
    public function addEpisodePersons(int $podcastId, int $episodeId, array $personIds, array $roles): bool | int
    {
        if ($personIds !== []) {
            cache()
                ->delete("podcast#{$podcastId}_episode#{$episodeId}_persons");
@@ -366,22 +365,24 @@ class PersonModel extends Model

            $data = [];
            foreach ($personIds as $personId) {
                if ($groupsRoles !== []) {
                    foreach ($groupsRoles as $groupRole) {
                        $groupRole = explode(',', $groupRole);
                if ($roles === []) {
                    $data[] = [
                        'podcast_id'   => $podcastId,
                        'episode_id'   => $episodeId,
                        'person_id'    => $personId,
                            'person_group' => $groupRole[0],
                            'person_role'  => $groupRole[1],
                        'person_group' => 'cast',
                        'person_role'  => 'host',
                    ];
                }
                } else {

                foreach ($roles as $role) {
                    $groupRole = explode(',', $role);
                    $data[] = [
                        'podcast_id'   => $podcastId,
                        'episode_id'   => $episodeId,
                        'person_id'    => $personId,
                        'person_group' => $groupRole[0],
                        'person_role'  => $groupRole[1],
                    ];
                }
            }
+0 −1
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@
        hint="<?= lang('Person.episode_form.roles_hint') ?>"
        options="<?= esc(json_encode($taxonomyOptions)) ?>"
        selected="<?= esc(json_encode(old('roles', []))) ?>"
        required="true"
    />

    <Button variant="primary" type="submit" class="self-end"><?= lang('Person.episode_form.submit_add') ?></Button>
+2 −2
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@
        hint="<?= lang('Person.podcast_form.roles_hint') ?>"
        options="<?= esc(json_encode($taxonomyOptions)) ?>"
        selected="<?= esc(json_encode(old('roles', []))) ?>"
        required="true" />
    />

    <Button variant="primary" class="self-end" type="submit"><?= lang('Person.podcast_form.submit_add') ?></Button>