79 lines
2.6 KiB
PHP
79 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\FavoriteWordModel;
|
|
use App\Models\EWWordModel;
|
|
|
|
class FavoriteWord extends BaseController
|
|
{
|
|
public function addFavorite()
|
|
{
|
|
if (!$this->checkLogin_ajax()) {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']);
|
|
}
|
|
|
|
$user_id = $this->session->get('useremail');
|
|
$ew_word_pid = $this->request->getPost('ew_word_pid');
|
|
|
|
$favoriteWordModel = new FavoriteWordModel();
|
|
|
|
// 이미 관심단어로 추가된 경우 중복 추가 방지
|
|
if ($favoriteWordModel->isFavorite($user_id, $ew_word_pid)) {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'Word already in favorites.']);
|
|
}
|
|
|
|
$data = [
|
|
'user_id' => $user_id,
|
|
'ew_word_pid' => $ew_word_pid
|
|
];
|
|
|
|
|
|
if ($favoriteWordModel->insert($data)) {
|
|
return $this->response->setJSON(['status' => 'success', 'message' => 'Word added to favorites.']);
|
|
} else {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'Failed to add word to favorites.']);
|
|
}
|
|
}
|
|
|
|
public function removeFavorite()
|
|
{
|
|
if (!$this->checkLogin_ajax()) {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']);
|
|
}
|
|
|
|
$user_id = $this->session->get('useremail');
|
|
$ew_word_pid = $this->request->getPost('ew_word_pid');
|
|
|
|
$favoriteWordModel = new FavoriteWordModel();
|
|
if ($favoriteWordModel->removeFavorite($user_id, $ew_word_pid)) {
|
|
return $this->response->setJSON(['status' => 'success', 'message' => 'Word removed from favorites.']);
|
|
} else {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'Failed to remove word from favorites.']);
|
|
}
|
|
}
|
|
|
|
public function getFavoriteWords()
|
|
{
|
|
if (!$this->checkLogin_ajax()) {
|
|
return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']);
|
|
}
|
|
|
|
$user_id = $this->session->get('useremail');
|
|
$favoriteWordModel = new FavoriteWordModel();
|
|
$ewWordModel = new EWWordModel();
|
|
|
|
$favoriteWords = $favoriteWordModel->where('user_id', $user_id)->findAll();
|
|
$favoriteWordDetails = [];
|
|
|
|
foreach ($favoriteWords as $favorite) {
|
|
$wordDetail = $ewWordModel->find($favorite['ew_word_pid']);
|
|
if ($wordDetail) {
|
|
$favoriteWordDetails[] = $wordDetail;
|
|
}
|
|
}
|
|
|
|
return view('favorite_words', ['favoriteWords' => $favoriteWordDetails]);
|
|
}
|
|
}
|