Parent Issue / 親Issue
#550
Motivation / 目的
Implement the Controller and routes for the Favorite Heritage API as part of #550.
お気に入りAPIのPresentation層(#550)として、Controllerとエンドポイントを実装します。
What to do / 実施内容
FavoriteController
createFavorite(int $heritageId): AddFavoriteUseCase を呼び出す
- 201 on success
- 409 when already favorited
- 404 when heritage not found
deleteFavorite(int $heritageId): RemoveFavoriteUseCase を呼び出す
- 200 on success
- 404 when not favorited
getMyFavorites(): ListMyFavoritesUseCase を呼び出す
- 200 with the list (empty array when none)
Routes
POST /api/v1/users/me/favorites/{heritageId}
DELETE /api/v1/users/me/favorites/{heritageId}
GET /api/v1/users/me/favorites
全て auth:sanctum ミドルウェア必須、ユーザーIDは認証済みユーザーから取得する。
Tests / テスト
test_createFavorite_returns_201_on_success
test_createFavorite_returns_409_when_already_favorited
test_deleteFavorite_returns_200_on_success
test_deleteFavorite_returns_404_when_not_favorited
test_getMyFavorites_returns_200_with_list
test_getMyFavorites_returns_200_with_empty_list_when_none
Parent Issue / 親Issue
#550
Motivation / 目的
Implement the Controller and routes for the Favorite Heritage API as part of #550.
お気に入りAPIのPresentation層(#550)として、Controllerとエンドポイントを実装します。
What to do / 実施内容
FavoriteControllercreateFavorite(int $heritageId):AddFavoriteUseCaseを呼び出すdeleteFavorite(int $heritageId):RemoveFavoriteUseCaseを呼び出すgetMyFavorites():ListMyFavoritesUseCaseを呼び出すRoutes
POST /api/v1/users/me/favorites/{heritageId}DELETE /api/v1/users/me/favorites/{heritageId}GET /api/v1/users/me/favorites全て
auth:sanctumミドルウェア必須、ユーザーIDは認証済みユーザーから取得する。Tests / テスト
test_createFavorite_returns_201_on_successtest_createFavorite_returns_409_when_already_favoritedtest_deleteFavorite_returns_200_on_successtest_deleteFavorite_returns_404_when_not_favoritedtest_getMyFavorites_returns_200_with_listtest_getMyFavorites_returns_200_with_empty_list_when_none