Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resolução do desafio desta aula | Atualizar episódios assistidos.

Dei uma lida nas respostas dos amigos do forum e percebi que alguns não estavam tratando um possível erro de quando o usuário devolve um array vazio com os ids dos episodes assistidos! O que acabava estourando uma exception no momento da execução.

Segue aí como fiz para contornar isso e atualizar a lista mesmo quando recebemos um array vazio na requisição:

public function update(Request $request, Season $season)
{
        $watchedEpisodes = implode(', ', $request->episodes ?? []);

        if (empty($watchedEpisodes)) {
            DB::transaction(function () use ($season) {
                $season->episodes()->update(['watched' => 0]);
            });
            return redirect()->route('episodes.index', $season->id);
        }

        DB::transaction(function () use ($watchedEpisodes, $season) {
            $season->episodes()->update(['watched' => DB::raw("case when id in ($watchedEpisodes) then 1 else 0 end")]);
        });

        return redirect()->route('episodes.index', $season->id);
}

Tentei adaptar um conceito de "fail-fast" na execução, mas não tenho certeza se isso se encaixa direito no contexto. XD

1 resposta
solução!

Olá, Guilherme, tudo bem?

Que legal que você encontrou uma solução e ainda compartilhou no fórum. Com certeza essa dica poderá ajudar outros alunos.

Continue realizando as atividades propostas para consolidar os conhecimentos adquiridos!

Caso surja alguma dúvida, é só compartilhar no fórum.

Abraços e bons estudos!