*/ class PlaylistTrackController extends BaseController { /** * @param array $args */ public function store($root, array $args): PlaylistTrack { $validated = $this->validated($args, CreatePlaylistTrackMutation::class); /** @var Playlist $playlist */ $playlist = Arr::pull($validated, 'playlist'); $action = new StoreTrackAction(); return $action->store($playlist, PlaylistTrack::query(), $validated); } /** * @param array $args */ public function update($root, array $args): PlaylistTrack { $validated = $this->validated($args, UpdatePlaylistTrackMutation::class); /** @var PlaylistTrack $track */ $track = Arr::pull($validated, self::MODEL); $action = new UpdateTrackAction(); return $action->update($track->playlist, $track, $validated); } /** * @param array $args */ public function destroy($root, array $args): array { /** @var PlaylistTrack $track */ $track = Arr::get($args, self::MODEL); $action = new DestroyTrackAction(); $message = $action->destroy($track->playlist, $track); return [ 'message' => $message, ]; } }