/** * Display the complete profile form * * @return View */ public function completeProfileArtistSave(Request $request) { $user = Auth::user(); $user->contact = $request->input('contact'); $user->city = $request->input('city'); $user->country = $request->input('country'); if ($request->hasFile('avatar')) { //upload an image to the /img/tmp directory and return the filepath. $file = $request->file('avatar'); $tmpFilePath = '/uploads/images/original/'; $tmpFileName = 'profile-' . time() . '-' . $file->getClientOriginalName(); //save original file $file = $file->move(public_path() . $tmpFilePath, $tmpFileName); $path = $tmpFilePath . $tmpFileName; //edit image $img = \Image::make($file); $img->backup(); //$img->fit(1200, 480); //$img->save('uploads/images/large/'.$tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(360); //240*240 $img->save('uploads/images/thumbnail/' . $tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(120); //100*100 $img->save('uploads/images/small/' . $tmpFileName); //save image to DB $user->avatar = $tmpFileName; } $user->type = 'artist'; $user->save(); //if artist already creates, then update if (Artist::where('user_id', $user->id)->count()) { $artist = Artist::where('user_id', $user->id)->first(); $artist->experience = $request->input('experience'); $artist->save(); } else { //create new artist $artist = new Artist(); $artist->user_id = $user->id; $artist->experience = $request->input('experience'); $artist->save(); } if ($request->hasFile('cover')) { //upload an image to the /img/tmp directory and return the filepath. $file = $request->file('cover'); $tmpFilePath = '/uploads/images/original/'; $tmpFileName = 'cover-' . time() . '-' . $file->getClientOriginalName(); //save original file $file = $file->move(public_path() . $tmpFilePath, $tmpFileName); $path = $tmpFilePath . $tmpFileName; //edit image $img = \Image::make($file); $img->backup(); $img->fit(1200, 480); $img->save('uploads/images/large/' . $tmpFileName); // reset image (return to backup state) $img->reset(); $img->fit(360, 144); //360*144 $img->save('uploads/images/thumbnail/' . $tmpFileName); //save image to DB $artist->cover = $tmpFileName; $artist->save(); } //save studio if (!$request->input('studio')) { $this->validate($request, ['studioName' => 'required|max:255', 'studioContact' => 'required|max:22|min:10', 'studioCity' => 'required', 'studioCountry' => 'required', 'studioLat' => 'required', 'studioLong' => 'required']); $studio = new Studio(); $studio->name = $request->input('studioName'); $studio->contact = $request->input('studioContact'); $studio->city = $request->input('studioCity'); $studio->latitude = $request->input('studioLat'); $studio->longitude = $request->input('studioLong'); $studio->country = $request->input('studioCountry'); $studio->save(); $artist->studios()->attach($studio->id); $artist->save(); $user->profileComplete = true; $user->save(); } else { if (Studio::where('id', $request->input('studio'))->count()) { $artist->studios()->attach($request->input('studio')); $user->profileComplete = true; $user->save(); } } if (!$user->social) { $user->avatar = url('uploads/images/small/' . $user->avatar); } $artist->cover = url('uploads/images/large/' . $artist->cover); return redirect('complete-profile-artist'); }
/** * reate a artist studio * * @return View */ public function createStudio(Request $request) { //dd($request); $user = Auth::user(); $artist = Artist::where('user_id', $user->id)->first(); if (Studio::where('user_id', $user->id)->first()) { return redirect('profile#studios')->with('error', 'Multiple Studios are not allowed.'); } $studio = new Studio(); $studio->user_id = $user->id; $studio->name = $request->input('name'); $studio->title = ''; if ($studio->save()) { $artist->studios()->attach($studio->id); session()->flash('success', 'Studio Created. Now Complete studio\'s profile.'); $data['name'] = $studio->name; $data['type'] = 'studio'; $data['contact'] = $user->contact; $data['email'] = $user->email; Mail::send('emails.admin_notification_signup', $data, function ($message) use($data) { $message->from('*****@*****.**', "Tattoo Cultr"); $message->subject("New Studio Signup"); $message->to(env('ADMIN_EMAIL')); }); } else { session()->flash('error', 'Error! Please try again..'); } return redirect('studio/' . $studio->user->slug); }
/** * Create a new user instance after a valid registration. * * @param array $data * @return User */ protected function create(array $data) { if (!isset($data['type'])) { $data['type'] = 'none'; } elseif ($data['type'] == 'member') { Validator::make($data, ['firstname' => 'required', 'lastname' => 'required']); //create user $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]); $member = new Member(); $member->user_id = $user->id; $member->firstname = $data['firstname']; $member->lastname = $data['lastname']; if ($member->save()) { session()->flash('success', 'Member Profile Created Successfully!'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } elseif ($data['type'] == 'artist') { Validator::make($data, ['firstname' => 'required', 'lastname' => 'required']); //create user $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]); $artist = new Artist(); $artist->user_id = $user->id; $artist->firstname = $data['firstname']; $artist->lastname = $data['lastname']; if ($artist->save()) { session()->flash('success', 'Artist Profile Created Successfully!'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } elseif ($data['type'] == 'studio') { Validator::make($data, ['name' => 'required', 'title' => 'required']); //create user $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type']]); $studio = new Studio(); $studio->user_id = $user->id; $studio->name = $user->name; $studio->title = $data['title']; if ($studio->save()) { session()->flash('success', 'Studio Created Successfully!'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } //dd($data); //do your role stuffs here //send verification mail to user //-------------------------------------------------------------------------------------------------------------- //$data['verification_code'] = $user->verification_code; Mail::send('emails.welcome', $data, function ($message) use($data) { $message->from('*****@*****.**', "Tattoo Cultr"); $message->subject("Welcome to Tattoo Cultr"); $message->to($data['email']); }); return $user; }
/** * Create a new user instance after a valid registration. * * @param array $data * @return User */ protected function create(array $data) { $data['email_verification_code'] = str_random(55); $data['lastname'] = ''; if (!isset($data['type'])) { $data['type'] = 'none'; } elseif ($data['type'] == 'member') { Validator::make($data, ['firstname' => 'required', 'gender' => 'required']); if ($data['gender'] == "female") { $data['avatar'] = 'avatar-female.jpg'; } else { $data['avatar'] = 'avatar.jpg'; } //create user $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'avatar' => $data['avatar'], 'email_verification_code' => $data['email_verification_code']]); $member = new Member(); $member->user_id = $user->id; $member->firstname = $data['firstname']; $member->lastname = ''; $member->gender = $data['gender']; $data['name'] = $data['firstname'] . ' ' . $data['lastname']; if ($member->save()) { session()->flash('success', 'Welcome ' . $data['firstname'] . '! Please continue connecting with artists and collecting tattoos'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } elseif ($data['type'] == 'artist') { Validator::make($data, ['firstname' => 'required']); $data['gender'] = 'male'; //male by default if ($data['gender'] == "female") { $data['avatar'] = 'avatar-female.jpg'; } else { $data['avatar'] = 'avatar.jpg'; } //create user $user = User::create(['name' => $data['firstname'] . ' ' . $data['lastname'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'avatar' => $data['avatar'], 'email_verification_code' => $data['email_verification_code']]); $artist = new Artist(); $artist->user_id = $user->id; $artist->firstname = $data['firstname']; $artist->lastname = $data['lastname']; $artist->gender = $data['gender']; $data['name'] = $data['firstname'] . ' ' . $data['lastname']; if ($artist->save()) { session()->flash('success', 'Welcome ' . $data['firstname'] . '! Lets start with building your profile.'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } elseif ($data['type'] == 'studio') { Validator::make($data, ['name' => 'required']); //create user $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'contact' => $data['contact'], 'type' => $data['type'], 'email_verification_code' => $data['email_verification_code']]); $studio = new Studio(); $studio->user_id = $user->id; $studio->name = $user->name; $studio->title = ''; if ($studio->save()) { session()->flash('success', 'Welcome ' . $data['name'] . '! Lets start with building your profile.'); } else { $user->delete(); session()->flash('error', 'Error! Please try again..'); } } if ($slugExit = User::where('slug', str_slug($data['name'], "."))->first()) { $data['slug'] = str_slug($data['name'] . $user->id, "."); $user->slug = $data['slug']; } else { $data['slug'] = str_slug($data['name'], "."); $user->slug = $data['slug']; } $user->save(); //send verification mail to user Mail::send('emails.welcome', $data, function ($message) use($data) { $message->from('*****@*****.**', "Tattoo Cultr"); $message->subject("Welcome to Tattoo Cultr"); $message->to($data['email']); }); Mail::send('emails.admin_notification_signup', $data, function ($message) use($data) { $message->from('*****@*****.**', "Tattoo Cultr"); $message->subject("New User Signup"); $message->to(env('ADMIN_EMAIL')); }); return $user; }