From 255784c32755184de44c8520b214a8bbee848d85 Mon Sep 17 00:00:00 2001 From: Chneemann Date: Fri, 16 May 2025 13:16:44 +0200 Subject: [PATCH] refactor: rename liked videos to favorite videos --- backend/user_app/admin.py | 2 +- backend/user_app/models.py | 2 +- backend/user_app/serializer.py | 6 +++--- backend/user_app/views.py | 6 +++--- backend/videoflix/urls.py | 2 +- .../src/app/components/home/home.component.ts | 16 ++++++++-------- frontend/src/app/services/user.service.ts | 18 +++++++++--------- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/backend/user_app/admin.py b/backend/user_app/admin.py index f81b0b2..a482702 100644 --- a/backend/user_app/admin.py +++ b/backend/user_app/admin.py @@ -13,7 +13,7 @@ class CustomUserAdmin(UserAdmin): 'Individual data', { 'fields': ( - 'liked_videos', + 'favorite_videos', 'watched_videos', 'verify_email_token', ) diff --git a/backend/user_app/models.py b/backend/user_app/models.py index 06e361e..5884158 100644 --- a/backend/user_app/models.py +++ b/backend/user_app/models.py @@ -6,7 +6,7 @@ from video_app.models import Video class CustomUser(AbstractUser): verify_email_token = models.CharField(max_length=20, blank=True, null=True) - liked_videos = models.ManyToManyField(Video, related_name='liked_by_users', blank=True) + favorite_videos = models.ManyToManyField(Video, related_name='favorite_by_users', blank=True) watched_videos = models.ManyToManyField(Video, related_name='watched_by_users', blank=True) def save(self, *args, **kwargs): diff --git a/backend/user_app/serializer.py b/backend/user_app/serializer.py index 6b3ea0f..3beab68 100644 --- a/backend/user_app/serializer.py +++ b/backend/user_app/serializer.py @@ -4,13 +4,13 @@ from .models import CustomUser class UserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser - fields = ["id", "username", "email", "liked_videos", "watched_videos"] + fields = ["id", "username", "email", "favorite_videos", "watched_videos"] -class LikedVideosSerializer(serializers.ModelSerializer): +class FavoriteVideosSerializer(serializers.ModelSerializer): class Meta: model = CustomUser - fields = ['liked_videos'] + fields = ['favorite_videos'] class WatchedVideosSerializer(serializers.ModelSerializer): class Meta: diff --git a/backend/user_app/views.py b/backend/user_app/views.py index 35fb086..9416ec8 100644 --- a/backend/user_app/views.py +++ b/backend/user_app/views.py @@ -2,7 +2,7 @@ from rest_framework.decorators import api_view, permission_classes from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework import status -from .serializer import LikedVideosSerializer, WatchedVideosSerializer, UserSerializer +from .serializer import FavoriteVideosSerializer, WatchedVideosSerializer, UserSerializer from .models import CustomUser @api_view(['GET', 'POST']) @@ -47,14 +47,14 @@ def user_video_preferences(request, id): @api_view(['PUT']) @permission_classes([IsAuthenticated]) -def user_liked_videos(request, id): +def user_favorite_videos(request, id): try: user = CustomUser.objects.get(pk=id) except CustomUser.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'PUT': - serializer = LikedVideosSerializer(user, data=request.data, partial=True) + serializer = FavoriteVideosSerializer(user, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) diff --git a/backend/videoflix/urls.py b/backend/videoflix/urls.py index fbfbfba..3cc30f9 100644 --- a/backend/videoflix/urls.py +++ b/backend/videoflix/urls.py @@ -30,7 +30,7 @@ urlpatterns = [ # Users URLs path('users/', user_views.users_list, name='users_list'), path('users//video-prefs/', user_views.user_video_preferences, name='user_video_preferences'), - path('users//liked/', user_views.user_liked_videos, name='user_favorite_videos'), + path('users//favorites/', user_views.user_favorite_videos, name='user_favorite_videos'), path('users//watched/', user_views.user_watched_videos, name='user_watched_videos'), # Authentication URLs diff --git a/frontend/src/app/components/home/home.component.ts b/frontend/src/app/components/home/home.component.ts index 00545f2..ef221bf 100644 --- a/frontend/src/app/components/home/home.component.ts +++ b/frontend/src/app/components/home/home.component.ts @@ -96,13 +96,13 @@ export class HomeComponent implements OnInit { } /** - * Loads the user's liked and watched video IDs. + * Loads the user's favorites and watched video IDs. */ private async loadUserVideoPreferences(): Promise { try { - const { liked_videos, watched_videos } = + const { favorite_videos, watched_videos } = await this.userService.getUserVideoPreferences(); - this.favoriteVideos = liked_videos; + this.favoriteVideos = favorite_videos; this.watchedVideos = watched_videos; } catch (error) { console.error('Failed to load user video preferences:', error); @@ -123,7 +123,7 @@ export class HomeComponent implements OnInit { */ onFavoriteVideoChange(favorites: number[]): void { this.favoriteVideos = favorites; - this.updateLikedVideos(); + this.updateFavoriteVideos(); } /** @@ -143,13 +143,13 @@ export class HomeComponent implements OnInit { } /** - * Updates user's liked videos in the backend. + * Updates user's favorite videos in the backend. */ - private updateLikedVideos(): void { + private updateFavoriteVideos(): void { const body = { - liked_videos: this.favoriteVideos, + favorite_videos: this.favoriteVideos, }; - this.userService.updateLikedVideos(body); + this.userService.updateFavoriteVideos(body); } /** diff --git a/frontend/src/app/services/user.service.ts b/frontend/src/app/services/user.service.ts index 4e8039f..69a5dd6 100644 --- a/frontend/src/app/services/user.service.ts +++ b/frontend/src/app/services/user.service.ts @@ -14,29 +14,29 @@ export class UserService { constructor(private apiService: ApiService) {} /** - * Fetch the list of videos liked and watched by the current user + * Fetch the list of favorite and watched videos for the current user * * @returns a promise resolving to an object with two properties: - * - `liked_videos`: a list of video IDs liked by the current user + * - `favorite_videos`: a list of video IDs favorited by the current user * - `watched_videos`: a list of video IDs watched by the current user */ getUserVideoPreferences(): Promise { return firstValueFrom( - this.apiService.get(`/user/${this.currentUserId}/video-prefs/`, true) + this.apiService.get(`/users/${this.currentUserId}/video-prefs/`, true) ); } /** - * Update the list of liked videos for the current user + * Update the list of favorite videos for the current user * - * @param likedVideos a list of video IDs liked by the current user + * @param favoriteVideos a list of video IDs favorited by the current user * @returns a promise resolved when the update is successful */ - updateLikedVideos(likedVideos: any): Promise { + updateFavoriteVideos(favoriteVideos: any): Promise { return firstValueFrom( this.apiService.put( - `/user/${this.currentUserId}/liked/`, - likedVideos, + `/users/${this.currentUserId}/favorites/`, + favoriteVideos, true ) ); @@ -51,7 +51,7 @@ export class UserService { updateWatchedVideos(watchedVideos: any): Promise { return firstValueFrom( this.apiService.put( - `/user/${this.currentUserId}/watched/`, + `/users/${this.currentUserId}/watched/`, watchedVideos, true )