'Masuk', ]); } public function loginAction(LoginRequest $request) { $validatedData = $request->validated(); if (Auth::attempt(['email' => $validatedData['email'], 'password' => $validatedData['password']])) { $request->session()->regenerate(); return redirect()->intended('/dashboard/overview'); } else { return redirect()->back()->with('failed-status', 'Pastikan data dan akun sudah terdaftar.'); } } public function register() { return view('auth.register', [ 'title' => 'Daftar', 'sample' => 'Hai', ]); } 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')['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')['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')['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'); } }