fix: update route in swagger annotations
This commit is contained in:
@@ -138,7 +138,7 @@ func NewAuthHandler(authService AuthServiceInterface, userRepo repositories.User
|
||||
// @Failure 401 {object} AuthResponse "Invalid credentials"
|
||||
// @Failure 403 {object} AuthResponse "Account is locked"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/login [post]
|
||||
// @Router /api/auth/login [post]
|
||||
func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Username string `json:"username"`
|
||||
@@ -180,7 +180,7 @@ func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} AuthResponse "Invalid request data or validation failed"
|
||||
// @Failure 409 {object} AuthResponse "Username or email already exists"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/register [post]
|
||||
// @Router /api/auth/register [post]
|
||||
func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Username string `json:"username"`
|
||||
@@ -256,7 +256,7 @@ func (h *AuthHandler) Register(w http.ResponseWriter, r *http.Request) {
|
||||
// @Success 200 {object} AuthResponse "Email confirmed successfully"
|
||||
// @Failure 400 {object} AuthResponse "Invalid or missing token"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/confirm [get]
|
||||
// @Router /api/auth/confirm [get]
|
||||
func (h *AuthHandler) ConfirmEmail(w http.ResponseWriter, r *http.Request) {
|
||||
token := strings.TrimSpace(r.URL.Query().Get("token"))
|
||||
if token == "" {
|
||||
@@ -288,7 +288,7 @@ func (h *AuthHandler) ConfirmEmail(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 429 {object} AuthResponse
|
||||
// @Failure 503 {object} AuthResponse
|
||||
// @Failure 500 {object} AuthResponse
|
||||
// @Router /auth/resend-verification [post]
|
||||
// @Router /api/auth/resend-verification [post]
|
||||
func (h *AuthHandler) ResendVerificationEmail(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Email string `json:"email"`
|
||||
@@ -337,7 +337,7 @@ func (h *AuthHandler) ResendVerificationEmail(w http.ResponseWriter, r *http.Req
|
||||
// @Success 200 {object} AuthResponse "User profile retrieved successfully"
|
||||
// @Failure 401 {object} AuthResponse "Authentication required"
|
||||
// @Failure 404 {object} AuthResponse "User not found"
|
||||
// @Router /auth/me [get]
|
||||
// @Router /api/auth/me [get]
|
||||
func (h *AuthHandler) Me(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -362,7 +362,7 @@ func (h *AuthHandler) Me(w http.ResponseWriter, r *http.Request) {
|
||||
// @Param request body ForgotPasswordRequest true "Username or email"
|
||||
// @Success 200 {object} AuthResponse "Password reset email sent if account exists"
|
||||
// @Failure 400 {object} AuthResponse "Invalid request data"
|
||||
// @Router /auth/forgot-password [post]
|
||||
// @Router /api/auth/forgot-password [post]
|
||||
func (h *AuthHandler) RequestPasswordReset(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
UsernameOrEmail string `json:"username_or_email"`
|
||||
@@ -393,7 +393,7 @@ func (h *AuthHandler) RequestPasswordReset(w http.ResponseWriter, r *http.Reques
|
||||
// @Success 200 {object} AuthResponse "Password reset successfully"
|
||||
// @Failure 400 {object} AuthResponse "Invalid or expired token, or validation failed"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/reset-password [post]
|
||||
// @Router /api/auth/reset-password [post]
|
||||
func (h *AuthHandler) ResetPassword(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Token string `json:"token"`
|
||||
@@ -450,7 +450,7 @@ func (h *AuthHandler) ResetPassword(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 409 {object} AuthResponse
|
||||
// @Failure 503 {object} AuthResponse
|
||||
// @Failure 500 {object} AuthResponse
|
||||
// @Router /auth/email [put]
|
||||
// @Router /api/auth/email [put]
|
||||
func (h *AuthHandler) UpdateEmail(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -504,7 +504,7 @@ func (h *AuthHandler) UpdateEmail(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} AuthResponse
|
||||
// @Failure 409 {object} AuthResponse
|
||||
// @Failure 500 {object} AuthResponse
|
||||
// @Router /auth/username [put]
|
||||
// @Router /api/auth/username [put]
|
||||
func (h *AuthHandler) UpdateUsername(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -553,7 +553,7 @@ func (h *AuthHandler) UpdateUsername(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} AuthResponse
|
||||
// @Failure 401 {object} AuthResponse
|
||||
// @Failure 500 {object} AuthResponse
|
||||
// @Router /auth/password [put]
|
||||
// @Router /api/auth/password [put]
|
||||
func (h *AuthHandler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -608,7 +608,7 @@ func (h *AuthHandler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} AuthResponse "Authentication required"
|
||||
// @Failure 503 {object} AuthResponse "Email delivery unavailable"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/account [delete]
|
||||
// @Router /api/auth/account [delete]
|
||||
func (h *AuthHandler) DeleteAccount(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -638,7 +638,7 @@ func (h *AuthHandler) DeleteAccount(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} AuthResponse "Invalid or expired token"
|
||||
// @Failure 503 {object} AuthResponse "Email delivery unavailable"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/account/confirm [post]
|
||||
// @Router /api/auth/account/confirm [post]
|
||||
func (h *AuthHandler) ConfirmAccountDeletion(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Token string `json:"token"`
|
||||
@@ -684,7 +684,7 @@ func (h *AuthHandler) ConfirmAccountDeletion(w http.ResponseWriter, r *http.Requ
|
||||
// @Security BearerAuth
|
||||
// @Success 200 {object} AuthResponse "Logged out successfully"
|
||||
// @Failure 401 {object} AuthResponse "Authentication required"
|
||||
// @Router /auth/logout [post]
|
||||
// @Router /api/auth/logout [post]
|
||||
func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) {
|
||||
SendSuccessResponse(w, "Logged out successfully", nil)
|
||||
}
|
||||
@@ -700,7 +700,7 @@ func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} AuthResponse "Invalid or expired refresh token"
|
||||
// @Failure 403 {object} AuthResponse "Account is locked"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/refresh [post]
|
||||
// @Router /api/auth/refresh [post]
|
||||
func (h *AuthHandler) RefreshToken(w http.ResponseWriter, r *http.Request) {
|
||||
var req RefreshTokenRequest
|
||||
|
||||
@@ -732,7 +732,7 @@ func (h *AuthHandler) RefreshToken(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} AuthResponse "Invalid request body or missing refresh token"
|
||||
// @Failure 401 {object} AuthResponse "Invalid or expired access token"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/revoke [post]
|
||||
// @Router /api/auth/revoke [post]
|
||||
func (h *AuthHandler) RevokeToken(w http.ResponseWriter, r *http.Request) {
|
||||
var req RevokeTokenRequest
|
||||
|
||||
@@ -763,7 +763,7 @@ func (h *AuthHandler) RevokeToken(w http.ResponseWriter, r *http.Request) {
|
||||
// @Success 200 {object} AuthResponse "All tokens revoked successfully"
|
||||
// @Failure 401 {object} AuthResponse "Invalid or expired access token"
|
||||
// @Failure 500 {object} AuthResponse "Internal server error"
|
||||
// @Router /auth/revoke-all [post]
|
||||
// @Router /api/auth/revoke-all [post]
|
||||
func (h *AuthHandler) RevokeAllTokens(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
|
||||
@@ -51,7 +51,7 @@ type UpdatePostRequest struct {
|
||||
// @Success 200 {object} PostResponse "Posts retrieved successfully with vote statistics"
|
||||
// @Failure 400 {object} PostResponse "Invalid pagination parameters"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts [get]
|
||||
// @Router /api/posts [get]
|
||||
func (h *PostHandler) GetPosts(w http.ResponseWriter, r *http.Request) {
|
||||
limit, offset := parsePagination(r)
|
||||
|
||||
@@ -87,7 +87,7 @@ func (h *PostHandler) GetPosts(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} PostResponse "Invalid post ID"
|
||||
// @Failure 404 {object} PostResponse "Post not found"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts/{id} [get]
|
||||
// @Router /api/posts/{id} [get]
|
||||
func (h *PostHandler) GetPost(w http.ResponseWriter, r *http.Request) {
|
||||
postID, ok := ParseUintParam(w, r, "id", "Post")
|
||||
if !ok {
|
||||
@@ -118,7 +118,7 @@ func (h *PostHandler) GetPost(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 409 {object} PostResponse "URL already submitted"
|
||||
// @Failure 502 {object} PostResponse "Failed to fetch title from URL"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts [post]
|
||||
// @Router /api/posts [post]
|
||||
func (h *PostHandler) CreatePost(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Title string `json:"title"`
|
||||
@@ -218,7 +218,7 @@ func (h *PostHandler) CreatePost(w http.ResponseWriter, r *http.Request) {
|
||||
// @Success 200 {object} PostResponse "Search results with vote statistics"
|
||||
// @Failure 400 {object} PostResponse "Invalid search parameters"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts/search [get]
|
||||
// @Router /api/posts/search [get]
|
||||
func (h *PostHandler) SearchPosts(w http.ResponseWriter, r *http.Request) {
|
||||
query := strings.TrimSpace(r.URL.Query().Get("q"))
|
||||
limit, offset := parsePagination(r)
|
||||
@@ -264,7 +264,7 @@ func (h *PostHandler) SearchPosts(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 403 {object} PostResponse "Not authorized to update this post"
|
||||
// @Failure 404 {object} PostResponse "Post not found"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts/{id} [put]
|
||||
// @Router /api/posts/{id} [put]
|
||||
func (h *PostHandler) UpdatePost(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -343,7 +343,7 @@ func (h *PostHandler) UpdatePost(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 403 {object} PostResponse "Not authorized to delete this post"
|
||||
// @Failure 404 {object} PostResponse "Post not found"
|
||||
// @Failure 500 {object} PostResponse "Internal server error"
|
||||
// @Router /posts/{id} [delete]
|
||||
// @Router /api/posts/{id} [delete]
|
||||
func (h *PostHandler) DeletePost(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -388,7 +388,7 @@ func (h *PostHandler) DeletePost(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} PostResponse "Invalid URL or URL parameter missing"
|
||||
// @Failure 501 {object} PostResponse "Title fetching is not available"
|
||||
// @Failure 502 {object} PostResponse "Failed to fetch title from URL"
|
||||
// @Router /posts/title [get]
|
||||
// @Router /api/posts/title [get]
|
||||
func (h *PostHandler) FetchTitleFromURL(w http.ResponseWriter, r *http.Request) {
|
||||
if h.titleFetcher == nil {
|
||||
SendErrorResponse(w, "Title fetching is not available", http.StatusNotImplemented)
|
||||
|
||||
@@ -36,7 +36,7 @@ type UserResponse = CommonResponse
|
||||
// @Success 200 {object} UserResponse "Users retrieved successfully"
|
||||
// @Failure 401 {object} UserResponse "Authentication required"
|
||||
// @Failure 500 {object} UserResponse "Internal server error"
|
||||
// @Router /users [get]
|
||||
// @Router /api/users [get]
|
||||
func (h *UserHandler) GetUsers(w http.ResponseWriter, r *http.Request) {
|
||||
limit, offset := parsePagination(r)
|
||||
|
||||
@@ -68,7 +68,7 @@ func (h *UserHandler) GetUsers(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} UserResponse "Authentication required"
|
||||
// @Failure 404 {object} UserResponse "User not found"
|
||||
// @Failure 500 {object} UserResponse "Internal server error"
|
||||
// @Router /users/{id} [get]
|
||||
// @Router /api/users/{id} [get]
|
||||
func (h *UserHandler) GetUser(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := ParseUintParam(w, r, "id", "User")
|
||||
if !ok {
|
||||
@@ -97,7 +97,7 @@ func (h *UserHandler) GetUser(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} UserResponse "Authentication required"
|
||||
// @Failure 409 {object} UserResponse "Username or email already exists"
|
||||
// @Failure 500 {object} UserResponse "Internal server error"
|
||||
// @Router /users [post]
|
||||
// @Router /api/users [post]
|
||||
func (h *UserHandler) CreateUser(w http.ResponseWriter, r *http.Request) {
|
||||
var req struct {
|
||||
Username string `json:"username"`
|
||||
@@ -155,7 +155,7 @@ func (h *UserHandler) CreateUser(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} UserResponse "Invalid user ID or pagination parameters"
|
||||
// @Failure 401 {object} UserResponse "Authentication required"
|
||||
// @Failure 500 {object} UserResponse "Internal server error"
|
||||
// @Router /users/{id}/posts [get]
|
||||
// @Router /api/users/{id}/posts [get]
|
||||
func (h *UserHandler) GetUserPosts(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := ParseUintParam(w, r, "id", "User")
|
||||
if !ok {
|
||||
|
||||
@@ -70,7 +70,7 @@ type VoteResponse = CommonResponse
|
||||
// @Failure 500 {object} VoteResponse "Internal server error"
|
||||
// @Example 200 {"success": true, "message": "Vote cast successfully", "data": {"post_id": 1, "type": "up", "up_votes": 5, "down_votes": 2, "score": 3, "is_anonymous": false}}
|
||||
// @Example 400 {"success": false, "error": "Invalid vote type. Must be 'up', 'down', or 'none'"}
|
||||
// @Router /posts/{id}/vote [post]
|
||||
// @Router /api/posts/{id}/vote [post]
|
||||
func (h *VoteHandler) CastVote(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -140,7 +140,7 @@ func (h *VoteHandler) CastVote(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 400 {object} VoteResponse "Invalid post ID"
|
||||
// @Failure 404 {object} VoteResponse "Post not found"
|
||||
// @Failure 500 {object} VoteResponse "Internal server error"
|
||||
// @Router /posts/{id}/vote [delete]
|
||||
// @Router /api/posts/{id}/vote [delete]
|
||||
func (h *VoteHandler) RemoveVote(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -198,7 +198,7 @@ func (h *VoteHandler) RemoveVote(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 500 {object} VoteResponse "Internal server error"
|
||||
// @Example 200 {"success": true, "message": "Vote retrieved successfully", "data": {"has_vote": true, "vote": {"type": "up", "user_id": 123}, "is_anonymous": false}}
|
||||
// @Example 200 {"success": true, "message": "No vote found", "data": {"has_vote": false, "vote": null, "is_anonymous": false}}
|
||||
// @Router /posts/{id}/vote [get]
|
||||
// @Router /api/posts/{id}/vote [get]
|
||||
func (h *VoteHandler) GetUserVote(w http.ResponseWriter, r *http.Request) {
|
||||
userID, ok := RequireAuth(w, r)
|
||||
if !ok {
|
||||
@@ -253,7 +253,7 @@ func (h *VoteHandler) GetUserVote(w http.ResponseWriter, r *http.Request) {
|
||||
// @Failure 401 {object} VoteResponse "Authentication required"
|
||||
// @Failure 500 {object} VoteResponse "Internal server error"
|
||||
// @Example 200 {"success": true, "message": "Votes retrieved successfully", "data": {"votes": [{"type": "up", "user_id": 123}, {"type": "down", "vote_hash": "abc123"}], "count": 2}}
|
||||
// @Router /posts/{id}/votes [get]
|
||||
// @Router /api/posts/{id}/votes [get]
|
||||
func (h *VoteHandler) GetPostVotes(w http.ResponseWriter, r *http.Request) {
|
||||
postID, ok := ParseUintParam(w, r, "id", "Post")
|
||||
if !ok {
|
||||
|
||||
Reference in New Issue
Block a user