Documentation
¶
Index ¶
- func CreateComment(c *fiber.Ctx) error
- func CreatePost(c *fiber.Ctx) error
- func DeleteComment(c *fiber.Ctx) error
- func DeletePostByID(c *fiber.Ctx) error
- func GetComments(c *fiber.Ctx) error
- func GetFeed(c *fiber.Ctx) error
- func GetFollowers(c *fiber.Ctx) error
- func GetFollowing(c *fiber.Ctx) error
- func GetPostByID(c *fiber.Ctx) error
- func GetPosts(c *fiber.Ctx) error
- func GetUserByID(c *fiber.Ctx) error
- func RegisterAuthRoutes(app *fiber.App)
- func RegisterCommentRoutes(app *fiber.App)
- func RegisterFeedRoutes(app *fiber.App)
- func RegisterPostRoutes(app *fiber.App)
- func RegisterRoutes(app *fiber.App)
- func RegisterUserRoutes(app *fiber.App)
- func RegisterWebSocketRoutes(app *fiber.App)
- func SearchUsers(c *fiber.Ctx) error
- func ToggleLike(c *fiber.Ctx) error
- func UploadMedia(c *fiber.Ctx) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateComment ¶
CreateComment handles POST /api/posts/:post_id/comments CreateComment handles POST /api/posts/:post_id/comments @Summary Create a comment for a post @Description Create a new comment for a specific post @Tags comments @Accept json @Produce json @Param post_id path int true "Post ID" @Param body body object true "Comment body (text only)" @Success 201 {object} models.Comment @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{post_id}/comments [post]
func CreatePost ¶
CreatePost handles POST /api/posts @Summary Create a post @Description Create a new post @Tags posts @Accept json @Produce json @Param post body models.Post true "Post data" @Success 201 {object} models.Post @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts [post]
func DeleteComment ¶
DeleteComment handles DELETE /api/posts/:post_id/comments/:comment_id @Summary Delete a comment @Description Delete a comment by its ID (only by the comment owner) @Tags comments @Param post_id path int true "Post ID" @Param comment_id path int true "Comment ID" @Success 204 "No Content" @Failure 400 {object} models.ErrorResponse @Failure 401 {object} models.ErrorResponse @Failure 403 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{post_id}/comments/{comment_id} [delete]
func DeletePostByID ¶
DeletePostByID handles DELETE /api/posts/:id @Summary Delete post by ID @Description Delete a post by its ID @Tags posts @Param id path int true "Post ID" @Success 204 {string} string "No Content" @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{id} [delete]
func GetComments ¶
GetComments handles GET /api/posts/:post_id/comments GetComments handles GET /api/posts/:post_id/comments @Summary Get comments for a post @Description Get all comments for a specific post @Tags comments @Produce json @Param post_id path int true "Post ID" @Success 200 {array} models.Comment @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{post_id}/comments [get]
func GetFeed ¶
GetFeed handles GET /api/feed @Summary Get user feed @Description Get a paginated feed for a user (posts from followed users) @Tags feed @Produce json @Param user_id query int true "User ID" @Param page query int false "Page number" @Param limit query int false "Page size" @Success 200 {object} models.FeedResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/feed [get]
func GetFollowers ¶
GetFollowers handles GET /api/users/:id/followers @Summary Get followers @Description Get a list of followers for a user @Tags users @Produce json @Param id path int true "User ID" @Success 200 {array} models.User @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/users/{id}/followers [get]
func GetFollowing ¶
GetFollowing handles GET /api/users/:id/following @Summary Get following @Description Get a list of users this user is following @Tags users @Produce json @Param id path int true "User ID" @Success 200 {array} models.User @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/users/{id}/following [get]
func GetPostByID ¶
GetPostByID handles GET /api/posts/:id @Summary Get post by ID @Description Get a single post by its ID @Tags posts @Produce json @Param id path int true "Post ID" @Success 200 {object} models.Post @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{id} [get]
func GetPosts ¶
GetPosts handles GET /api/posts @Summary List posts @Description Get a paginated list of posts @Tags posts @Produce json @Param page query int false "Page number" @Param limit query int false "Page size" @Success 200 {object} models.PostsResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts [get]
func GetUserByID ¶
GetUserByID handles GET /api/users/:id @Summary Get user by ID @Description Get a user by their ID @Tags users @Produce json @Param id path int true "User ID" @Success 200 {object} models.User @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Security BearerAuth @Router /api/users/{id} [get]
func RegisterAuthRoutes ¶
RegisterAuthRoutes registers authentication routes
func RegisterCommentRoutes ¶
RegisterCommentRoutes registers comment-related routes under posts
func RegisterFeedRoutes ¶
RegisterFeedRoutes registers the feed route
func RegisterPostRoutes ¶
RegisterPostRoutes registers post-related routes
func RegisterRoutes ¶
func RegisterWebSocketRoutes ¶
RegisterWebSocketRoutes registers WebSocket routes with Fiber
func SearchUsers ¶
SearchUsers handles GET /api/users/search?q=query @Summary Search users @Description Search for users by username or email @Tags users @Produce json @Param q query string true "Search query" @Success 200 {array} models.User @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/users/search [get]
func ToggleLike ¶
ToggleLike handles POST /api/posts/:id/like @Summary Toggle like for a post @Description Like or unlike a post for the authenticated user @Tags posts @Produce json @Param id path int true "Post ID" @Success 200 {object} models.ToggleLikeResponse @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/posts/{id}/like [post]
func UploadMedia ¶
UploadMedia handles POST /api/upload @Summary Upload media file @Description Uploads a media file and returns its storage path @Tags upload @Accept multipart/form-data @Produce json @Param file formData file true "Media file to upload" @Success 200 {object} models.UploadResponse @Failure 400 {object} models.ErrorResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Security BearerAuth @Router /api/upload [post]
Types ¶
This section is empty.