From f535d09e97bf1ea325e0b1fe16a03fa36200db0d Mon Sep 17 00:00:00 2001
From: Kentai Radiquum <kentai.waah@gmail.com>
Date: Wed, 1 May 2024 11:49:07 +0500
Subject: [PATCH] refactor(backend-&-frontend): change bookmarks api urls to
 /api/bookmarks/{path} from /api/favorites/{path}

BREAKING CHANGE:
---
 backend/main.py                               |  8 +++---
 .../pages/{favorites.py => bookmarks.py}      | 27 +++++++++++++++++++
 backend/modules/user/profile.py               | 22 ---------------
 frontend/app/api/config.js                    | 13 ++++-----
 .../app/components/Release/ReleaseInfo.jsx    |  2 +-
 frontend/app/history/page.js                  |  2 +-
 6 files changed, 40 insertions(+), 34 deletions(-)
 rename backend/modules/pages/{favorites.py => bookmarks.py} (67%)

diff --git a/backend/main.py b/backend/main.py
index 6dc7653..791cb0e 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -1,7 +1,7 @@
 import uvicorn
 from fastapi import FastAPI
 from modules import proxy
-from modules.pages import favorites
+from modules.pages import bookmarks
 from modules.pages import index
 from modules.pages import search
 from modules.release import release
@@ -22,8 +22,8 @@ TAGS = [
         "description": "Releases API requests",
     },
     {
-        "name": "Favorites",
-        "description": "Favorites API requests",
+        "name": "Bookmarks",
+        "description": "Bookmarks API requests",
     },
     {
         "name": "Search",
@@ -46,7 +46,7 @@ app.include_router(auth.router, prefix="/api/auth", tags=["Profile"])
 app.include_router(release.router, prefix="/api/release", tags=["Releases"])
 
 app.include_router(index.router, prefix="/api/index", tags=["Index"])
-app.include_router(favorites.router, prefix="/api/favorites", tags=["Favorites"])
+app.include_router(bookmarks.router, prefix="/api/bookmarks", tags=["Bookmarks"])
 app.include_router(search.router, prefix="/api/search", tags=["Search"])
 
 app.include_router(proxy.router, prefix="/api/proxy")
diff --git a/backend/modules/pages/favorites.py b/backend/modules/pages/bookmarks.py
similarity index 67%
rename from backend/modules/pages/favorites.py
rename to backend/modules/pages/bookmarks.py
index 4d1d0fe..cfbdde2 100644
--- a/backend/modules/pages/favorites.py
+++ b/backend/modules/pages/bookmarks.py
@@ -46,3 +46,30 @@ async def GetUserAbandoned(request: Request, token: str, page: int = 0):
     return await apiRequest(
         request, ENDPOINTS["user"]["abandoned"], page, query=f"?token={token}"
     )
+
+
+@router.get(
+    "/list/{bookmark_list_id}/{release_id}/add", summary="Add release to bookmarks list"
+)
+async def addReleaseToBookmarks(
+    request: Request, release_id: int, bookmark_list_id: int, token: str
+):
+    return await apiRequest(
+        request,
+        f"{ENDPOINTS['profile']}/list/add/{bookmark_list_id}/{release_id}",
+        query=f"?token={token}",
+    )
+
+
+@router.get(
+    "/list/{bookmark_list_id}/{release_id}/delete",
+    summary="Remove release from bookmarks list",
+)
+async def deleteReleaseFromBookmarks(
+    request: Request, release_id: int, bookmark_list_id: int, token: str
+):
+    return await apiRequest(
+        request,
+        f"{ENDPOINTS['profile']}/list/delete/{bookmark_list_id}/{release_id}",
+        query=f"?token={token}",
+    )
diff --git a/backend/modules/user/profile.py b/backend/modules/user/profile.py
index ee5e32f..7829f30 100644
--- a/backend/modules/user/profile.py
+++ b/backend/modules/user/profile.py
@@ -28,25 +28,3 @@ async def getUserById(
         },
         "is_my_profile": res["is_my_profile"],
     }
-
-
-@router.get("/{release_id}/{list}/add", summary="Add release to bookmarks list")
-async def addReleaseToBookmarks(
-    request: Request, release_id: int, list: int, token: str
-):
-    return await apiRequest(
-        request,
-        f"{ENDPOINTS['profile']}/list/add/{list}/{release_id}",
-        query=f"?token={token}",
-    )
-
-
-@router.get("/{release_id}/{list}/delete", summary="Remove release from bookmarks list")
-async def deleteReleaseFromBookmarks(
-    request: Request, release_id: int, list: int, token: str
-):
-    return await apiRequest(
-        request,
-        f"{ENDPOINTS['profile']}/list/delete/{list}/{release_id}",
-        query=f"?token={token}",
-    )
diff --git a/frontend/app/api/config.js b/frontend/app/api/config.js
index 7588893..71a135c 100644
--- a/frontend/app/api/config.js
+++ b/frontend/app/api/config.js
@@ -11,13 +11,14 @@ export const endpoints = {
   user: {
     profile: `${API_URL}/profile`,
     auth: `${API_URL}/auth`,
-    history: `${API_URL}/favorites/history`,
     bookmarks: {
-      watching: `${API_URL}/favorites/watching`,
-      planned: `${API_URL}/favorites/planned`,
-      watched: `${API_URL}/favorites/watched`,
-      delayed: `${API_URL}/favorites/delayed`,
-      abandoned: `${API_URL}/favorites/abandoned`,
+      list: `${API_URL}/bookmarks/list`,
+      history: `${API_URL}/bookmarks/history`,
+      watching: `${API_URL}/bookmarks/watching`,
+      planned: `${API_URL}/bookmarks/planned`,
+      watched: `${API_URL}/bookmarks/watched`,
+      delayed: `${API_URL}/bookmarks/delayed`,
+      abandoned: `${API_URL}/bookmarks/abandoned`,
     },
   },
   release: `${API_URL}/release`,
diff --git a/frontend/app/components/Release/ReleaseInfo.jsx b/frontend/app/components/Release/ReleaseInfo.jsx
index 579bc2c..8f643c8 100644
--- a/frontend/app/components/Release/ReleaseInfo.jsx
+++ b/frontend/app/components/Release/ReleaseInfo.jsx
@@ -46,7 +46,7 @@ export const ReleaseInfo = (props) => {
 
   useEffect(() => {
     async function _setList() {
-      const url = `${endpoints.user.profile}/${props.id}/${list}/add?token=${userStore.token}`;
+      const url = `${endpoints.user.bookmarks.list}/${list}/${props.id}/add?token=${userStore.token}`;
       await getData(url);
     }
     if (
diff --git a/frontend/app/history/page.js b/frontend/app/history/page.js
index fb7322b..2deb28c 100644
--- a/frontend/app/history/page.js
+++ b/frontend/app/history/page.js
@@ -17,7 +17,7 @@ export default function History() {
 
   async function fetchData(page = 0) {
     if (userStore.token) {
-      const url = `${endpoints.user.history}?page=${page}&token=${userStore.token}`;
+      const url = `${endpoints.user.bookmarks.history}?page=${page}&token=${userStore.token}`;
       const data = await getData(url);
 
       if (data.content.length < 25) {