151 lines
5.7 KiB
PHP
151 lines
5.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Preference;
|
|
use App\Models\UserPreference;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class PreferencesController extends Controller
|
|
{
|
|
// Menampilkan form preferences
|
|
public function showForm()
|
|
{
|
|
return view('preferences.form');
|
|
}
|
|
|
|
// Menyimpan preferensi
|
|
// public function savePreferences(Request $request)
|
|
// {
|
|
// $request->validate([
|
|
// 'preferences' => 'required|array', // Memastikan preferences adalah array
|
|
// ]);
|
|
|
|
// // Simpan preferensi sebagai JSON
|
|
// UserPreference::updateOrCreate(
|
|
// ['user_id' => auth()->id()],
|
|
// ['preferences' => json_encode($request->preferences)]
|
|
// );
|
|
|
|
// return response()->json(['message' => 'Preferences saved successfully']);
|
|
// }
|
|
|
|
// Mendapatkan preferensi pengguna yang telah disimpan
|
|
// public function getPreferences()
|
|
// {
|
|
// $preferences = UserPreference::where('user_id', auth()->id())->first();
|
|
// return response()->json($preferences);
|
|
// }
|
|
|
|
|
|
public function storeOrUpdatePreferences(Request $request)
|
|
{
|
|
// Dapatkan user yang sedang login
|
|
$user = Auth::user();
|
|
|
|
|
|
// Validasi input
|
|
$request->validate([
|
|
'filters.*' => 'string|distinct',
|
|
'bidang_sub_sektor_ekonomi_kreatif' => 'array|nullable',
|
|
'kategori' => 'array|nullable',
|
|
'batas_terima_tawaran' => 'date|nullable',
|
|
'range_min' => 'numeric|nullable',
|
|
'range_max' => 'numeric|nullable',
|
|
'status' => 'array|nullable',
|
|
'audiens' => 'string|nullable',
|
|
'benefit' => 'string|nullable',
|
|
'durasi_min' => 'integer|nullable',
|
|
'durasi_max' => 'integer|nullable',
|
|
'lokasi' => 'string|nullable',
|
|
'metodologi' => 'string|nullable',
|
|
'rincian_kebutuhan' => 'string|nullable',
|
|
'penerima_manfaat' => 'string|nullable',
|
|
]);
|
|
|
|
$batasTerimaTawaran = $request->batas_terima_tawaran
|
|
? date('Y-m-d', strtotime($request->batas_terima_tawaran))
|
|
: null;
|
|
|
|
// Buat atau perbarui preferences
|
|
$preferences = Preference::updateOrCreate(
|
|
['user_id' => $user->id], // Kondisi pencarian berdasarkan user_id
|
|
[
|
|
'filters' => json_encode($request->filters),
|
|
'bidang_sub_sektor_ekonomi_kreatif' => json_encode($request->bidang_sub_sektor_ekonomi_kreatif),
|
|
'kategori' => json_encode($request->kategori),
|
|
'batas_terima_tawaran' => $batasTerimaTawaran,
|
|
'range_min' => $request->range_min,
|
|
'range_max' => $request->range_max,
|
|
'status' => json_encode($request->status),
|
|
'audiens' => $request->audiens,
|
|
'benefit' => $request->benefit,
|
|
'durasi_min' => $request->durasi_min,
|
|
'durasi_max' => $request->durasi_max,
|
|
'lokasi' => $request->lokasi,
|
|
'metodologi' => $request->metodologi,
|
|
'rincian_kebutuhan' => $request->rincian_kebutuhan,
|
|
'penerima_manfaat' => $request->penerima_manfaat,
|
|
]
|
|
);
|
|
|
|
// Kembali ke halaman sebelumnya dengan pesan sukses
|
|
return redirect()->back()->with('success', 'Preferences updated successfully.');
|
|
}
|
|
|
|
// public function storeOrUpdatePreferences(Request $request)
|
|
// {
|
|
// // Dapatkan user yang sedang login
|
|
// $user = Auth::user();
|
|
|
|
// // Validasi input
|
|
// $request->validate([
|
|
// 'filters.*' => 'string|distinct',
|
|
// 'bidang_sub_sektor_ekonomi_kreatif' => 'array|nullable',
|
|
// 'kategori' => 'array|nullable',
|
|
// 'batas_terima_tawaran' => 'date|nullable',
|
|
// 'range_min' => 'numeric|nullable',
|
|
// 'range_max' => 'numeric|nullable',
|
|
// 'status' => 'array|nullable',
|
|
// 'audiens' => 'string|nullable',
|
|
// 'benefit' => 'string|nullable',
|
|
// 'durasi_min' => 'integer|nullable',
|
|
// 'durasi_max' => 'integer|nullable',
|
|
// 'lokasi' => 'string|nullable',
|
|
// 'metodologi' => 'string|nullable',
|
|
// 'rincian_kebutuhan' => 'string|nullable',
|
|
// 'penerima_manfaat' => 'string|nullable',
|
|
// ]);
|
|
|
|
|
|
|
|
// // Buat atau perbarui preferences
|
|
// $preferences = Preference::updateOrCreate(
|
|
// ['user_id' => $user->id], // Kondisi pencarian berdasarkan user_id
|
|
// [
|
|
// 'filters' => json_encode($request->filters), // Menyimpan filters sebagai JSON
|
|
// 'bidang_sub_sektor_ekonomi_kreatif' => json_encode($request->bidang_sub_sektor_ekonomi_kreatif),
|
|
// 'kategori' => json_encode($request->kategori),
|
|
// 'batas_terima_tawaran' => $request->batas_terima_tawaran,
|
|
// 'range_min' => $request->range_min,
|
|
// 'range_max' => $request->range_max,
|
|
// 'status' => json_encode($request->status),
|
|
// 'audiens' => $request->audiens,
|
|
// 'benefit' => $request->benefit,
|
|
// 'durasi_min' => $request->durasi_min,
|
|
// 'durasi_max' => $request->durasi_max,
|
|
// 'lokasi' => $request->lokasi,
|
|
// 'metodologi' => $request->metodologi,
|
|
// 'rincian_kebutuhan' => $request->rincian_kebutuhan,
|
|
// 'penerima_manfaat' => $request->penerima_manfaat,
|
|
// ]
|
|
// );
|
|
|
|
// // Kembali ke halaman sebelumnya dengan pesan sukses
|
|
// return redirect()->back()->with('success', 'Preferences berhasil diperbarui!');
|
|
// }
|
|
|
|
|
|
}
|