profile)) { $profile = Profile::create([ 'profileShortBio' => 'Write a one-liner about you here!', 'profileAboutMe' => 'Tell us a bit about you.', 'socialLinks' => '{}', 'userID' => $targetUser->id, ]); if (is_null($profile)) { throw new ProfileCreationFailedException(__('Could not create profile! Please try again later.')); } Log::info('Created profile for new user', [ 'userid' => $targetUser->id ]); return $profile; } throw new ProfileAlreadyExistsException(__('Profile already exists!')); } /** * Updates the user's profile. * * @throws ProfileNotFoundException */ public function updateProfile($userID, Request $request) { $profile = User::find($userID)->profile; $social = []; if (! is_null($profile)) { switch ($request->avatarPref) { case 'MOJANG': $avatarPref = 'crafatar'; break; case 'GRAVATAR': $avatarPref = strtolower($request->avatarPref); break; } $social['links']['github'] = $request->socialGithub; $social['links']['twitter'] = $request->socialTwitter; $social['links']['insta'] = $request->socialInsta; $social['links']['discord'] = $request->socialDiscord; $profile->profileShortBio = $request->shortBio; $profile->profileAboutMe = $request->aboutMe; $profile->avatarPreference = $avatarPref; $profile->socialLinks = json_encode($social); return $profile->save(); } throw new ProfileNotFoundException("This profile does not exist."); } /** * Delete specified user's profile * * @param User $targetUser * @return bool * @throws ProfileNotFoundException */ public function deleteProfile(User $targetUser): bool { if (!is_null($targetUser->profile)) { Log::alert('Deleted user profile', [ 'userid' => $targetUser->id ]); return $targetUser->profile->delete(); } throw new ProfileNotFoundException(__('Attempting to delete non-existant profile!')); } }