middleware(['auth', 'verified']); } /** * @return Application|Factory|View|RedirectResponse|Redirector|\never */ public function index() { if (!empty(Auth::user()->type)) { switch (Auth::user()->type) { case UserType::ARTIST->value: $artist = Artist::where('user_id', Auth::id())->firstOrFail(); if ($artist->isOnboardingCompleted()) { return redirect(RouteServiceProvider::ARTIST_HOME); } return view('onboarding.artist.index') ->with('artist', $artist) ->with('types', ArtistType::all()) ->with('genres', Genre::all()); case UserType::ORGANIZER->value: $organizer = Organizer::where('user_id', Auth::id())->firstOrFail(); if ($organizer->isOnboardingCompleted()) { return redirect(RouteServiceProvider::ARTIST_HOME); } return view('onboarding.organizer.index') ->with('organizer', $organizer); } } return abort(404); } /** * @param Request $request * @return Application|RedirectResponse|Redirector|\never */ public function create(Request $request) { if (!empty(Auth::user()->type)) { switch (Auth::user()->type) { case UserType::ARTIST->value: $artist = Artist::where('user_id', Auth::id())->firstOrFail(); if ($request->has('birth_date')) { $artist->birth_date = $request->input('birth_date'); } if ($request->has('city')) { $artist->city = $request->input('city'); } if ($request->has('country')) { $artist->country = $request->input('country'); } if ($request->has('short_description')) { $artist->short_description = $request->input('short_description'); } if ($request->has('artist_type')) { $type = ArtistType::where('name', $request->input('artist_type'))->firstOrFail(); $artist->artist_type()->associate($type); } if ($request->has('genres')) { foreach ($request->input('genres') as $genre) { Genre::findOrFail($genre); } $artist->genres()->attach($request->input('genres.*')); } try { $artist->save(); } catch (Exception $e) { return redirect()->back() ->with('error', $e->getMessage()); } $artist->user()->associate(Auth::user()); return redirect(RouteServiceProvider::ARTIST_HOME); case UserType::ORGANIZER->value: $organizer = Organizer::where('user_id', Auth::id())->firstOrFail(); if ($request->has('city')) { $organizer->city = $request->input('city'); } if ($request->has('country')) { $organizer->country = $request->input('country'); } $organizer->user()->associate(Auth::user()); try { $organizer->save(); } catch (Exception $e) { return redirect()->back() ->with('error', $e->getMessage()); } return redirect(RouteServiceProvider::ORGANIZER_HOME); } } return abort(404); } }