Skip to content

Commit

Permalink
likesはつねにログイン中のユーザに対するアクションであることから、存在しないユーザへの例外を削除。パスからもuser_idを削除
Browse files Browse the repository at this point in the history
  • Loading branch information
duri0214 committed Jan 6, 2024
1 parent 044e996 commit 4fcffbb
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 24 deletions.
6 changes: 1 addition & 5 deletions vietnam_research/templates/vietnam_research/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -302,11 +302,7 @@ <h2>PERとは</h2>
for (let i = 0; i < likeToggles.length; i++) {
likeToggles[i].addEventListener('click', () => {
const articleId = likeToggles[i].dataset.articleId
const userId = "{{ user.id }}"
if (userId === 'None' || userId === '') {
location.href = myurl.login
}
fetch(`${myurl.base}likes/${articleId}/${userId}/`, {
fetch(`${myurl.base}likes/${articleId}/`, {
method: 'POST',
headers: {
"Content-Type": "application/json; charset=utf-8",
Expand Down
11 changes: 0 additions & 11 deletions vietnam_research/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,6 @@ def test_can_create_likes(self):
self.assertEqual(200, response.status_code)
self.assertEqual(4, Likes.objects.filter(articles=self.article).count())

def test_can_not_create_likes_because_the_user_not_exist(self):
logged_in = self.client.login(email=self.user.email, password=self.password_plane)
self.assertTrue(logged_in)

# 存在しないユーザIDを指定してPOSTリクエストを送信
response = self.client.post(reverse('vnm:likes', kwargs={'article_id': self.article.pk, 'user_id': 999}))

# 例外が発生し、エラーとなることを確認
self.assertEqual(400, response.status_code)
self.assertIn('存在しないユーザアカウントへのリクエストがありました', response.content.decode('utf-8'))

def test_can_not_create_likes_because_the_article_not_exist(self):
logged_in = self.client.login(email=self.user.email, password=self.password_plane)
self.assertTrue(logged_in)
Expand Down
2 changes: 1 addition & 1 deletion vietnam_research/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
app_name = 'vnm'
urlpatterns = [
path('', IndexView.as_view(), name='index'),
path('likes/<int:article_id>/<int:user_id>/', LikesView.as_view(), name='likes'),
path('likes/<int:article_id>/', LikesView.as_view(), name='likes'),
path('article/create/', ArticleCreateView.as_view(), name="article_create"),
path('watchlist/register/', WatchlistRegister.as_view(), name="watchlist_register"),
path('watchlist/edit/<int:pk>/', WatchlistEdit.as_view(), name="watchlist_edit"),
Expand Down
10 changes: 3 additions & 7 deletions vietnam_research/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from django.views import View
from django.views.generic import CreateView, ListView, UpdateView, TemplateView

from register.models import User
from vietnam_research.forms import ArticleForm, WatchlistCreateForm, ExchangeForm, FinancialResultsForm
from vietnam_research.models import Watchlist, Likes, Articles, FinancialResultWatch, BasicInformation
from vietnam_research.service.market_vietnam import MarketVietnam
Expand Down Expand Up @@ -72,26 +71,23 @@ def post(self, request, *args, **kwargs):


class LikesView(LoginRequiredMixin, View):
@staticmethod
def post(request, *args, **kwargs):
def post(self, request, *args, **kwargs):
try:
user = User.objects.get(pk=kwargs['user_id'])
user = self.request.user
article = Articles.objects.get(pk=kwargs['article_id'], user=user)
already_liked = Likes.objects.filter(user=user).exists()

if already_liked:
Likes.objects.filter(user=user, articles=article).delete()
else:
Likes.objects.create(user=user, articles=article)

already_liked = not already_liked
article_likes_count = Likes.objects.filter(articles=article) \
.aggregate(likes_count=Count('id'))['likes_count']

return HttpResponse(json.dumps({'likes_cnt': article_likes_count, 'liked_by_me': already_liked}),
status=200)
except User.DoesNotExist:
msg = '存在しないユーザアカウントへのリクエストがありました'
logging.critical(msg)
except Articles.DoesNotExist:
msg = '存在しない記事へのリクエストがありました'
logging.critical(msg)
Expand Down

0 comments on commit 4fcffbb

Please sign in to comment.