'Masuk' ]); } public function loginAction(LoginRequest $request){ $validatedData = $request->validated(); if(Auth::attempt($validatedData)){ $request->session()->regenerate(); return redirect()->intended('/dashboard/overview'); }else{ return redirect()->back(); } } public function register(){ return view('auth.register', [ 'title' => 'Daftar' ]); } public function registerAction(RegisterRequest $request){ DB::beginTransaction(); try{ $validatedData = $request->validated(); $createdUser = User::create([ 'name' => $validatedData['name'], 'email' => $validatedData['email'], 'password' => $validatedData['password'], 'status' => '0', 'role_id' => '3', ]); $companyFiles = [ 'company_director_nik_doc', 'company_deed_incorporation_doc', 'company_trade_license_doc', 'company_tax_id_number_doc', 'company_taxable_enterprise_doc', 'company_annual_tax_return_doc', 'company_domicile_certificate_doc', 'company_profile_doc', ]; $companyFileNames = []; foreach($companyFiles as $file){ if($request->hasFile($file)){ $companyFileNames[$file] = store_file($validatedData[$file], '/uploads/companies', 'public')['randomFileName']; }else{ $companyFileNames[$file] = null; } } $createdCompany = Company::create([ 'name' => $validatedData['company_name'], 'email' => $validatedData['company_email'], 'address' => $validatedData['company_address'], 'director_name' => $validatedData['company_director_name'], 'director_nik' => $validatedData['company_director_nik'], 'director_nik_doc' => $companyFileNames['company_director_nik_doc'], 'deed_incorporation' => $validatedData['company_deed_incorporation'], 'deed_incorporation_doc' => $companyFileNames['company_deed_incorporation_doc'], 'trade_license' => $validatedData['company_trade_license'], 'trade_license_doc' => $companyFileNames['company_trade_license_doc'], 'tax_id_number' => $validatedData['company_tax_id_number'], 'tax_id_number_doc' => $companyFileNames['company_tax_id_number_doc'], 'taxable_enterprise' => $validatedData['company_taxable_enterprise'], 'taxable_enterprise_doc' => $companyFileNames['company_taxable_enterprise_doc'], 'annual_tax_return' => $validatedData['company_annual_tax_return'], 'annual_tax_return_doc' => $companyFileNames['company_annual_tax_return_doc'], 'domicile_certificate' => $validatedData['company_domicile_certificate'], 'domicile_certificate_doc' => $companyFileNames['company_domicile_certificate_doc'], 'profile' => $validatedData['company_profile'], 'profile_doc' => $companyFileNames['company_profile_doc'], 'user_id' => $createdUser->id, ]); $mediaFiles = [ 'media_journalism_organization_doc', 'media_press_council_certificate_doc' ]; $mediaFileNames = []; foreach($mediaFiles as $file){ if($request->hasFile($file)){ $mediaFileNames[$file] = store_file($validatedData[$file], '/uploads/media', 'public')['randomFileName']; }else{ $mediaFileNames[$file] = null; } } $createdMedia = Media::create([ 'name' => $validatedData['media_name'], 'address' => $validatedData['media_address'], 'link' => $validatedData['media_link'], 'type' => $validatedData['media_type'], 'classification' => $validatedData['media_classification'], 'journalism_organization' => $validatedData['media_journalism_organization'], 'journalism_organization_doc' => $mediaFileNames['media_journalism_organization_doc'], 'press_council_certificate' => $validatedData['media_press_council_certificate'], 'press_council_certificate_doc' => $mediaFileNames['media_press_council_certificate_doc'], 'company_id' => $createdCompany->id, ]); $journalistFiles = [ 'journalist_press_card_doc', 'journalist_ukw_sertificate_doc' ]; $journalistFileNames = []; foreach($journalistFiles as $file){ if($request->hasFile($file)){ $journalistFileNames[$file] = store_file($validatedData[$file], '/uploads/journalists', 'public')['randomFileName']; }else{ $journalistFileNames[$file] = null; } } $createdJournalist = Journalist::create([ 'name' => $validatedData['journalist_name'], 'email' => $validatedData['journalist_email'], 'phone_number' => $validatedData['journalist_phone_number'], 'press_card' => $validatedData['journalist_press_card'], 'press_card_doc' => $journalistFileNames['journalist_press_card_doc'], 'ukw_sertificate' => $validatedData['journalist_ukw_sertificate'], 'ukw_sertificate_doc' => $journalistFileNames['journalist_ukw_sertificate_doc'], 'media_id' => $createdMedia->id, ]); DB::commit(); return redirect()->route('auth.register.success'); }catch(\Exception $e){ DB::rollBack(); throw $e; } } public function registerSuccess(){ return view('auth.register-success', [ 'title' => 'Daftar Berhasil' ]); } public function logout(Request $request){ Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->route('login'); } }