api

package
v0.0.0-...-d62137c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateComment

func CreateComment(c *fiber.Ctx) error

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

func CreatePost(c *fiber.Ctx) error

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

func DeleteComment(c *fiber.Ctx) error

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

func DeletePostByID(c *fiber.Ctx) error

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

func GetComments(c *fiber.Ctx) error

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

func GetFeed(c *fiber.Ctx) error

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

func GetFollowers(c *fiber.Ctx) error

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

func GetFollowing(c *fiber.Ctx) error

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

func GetPostByID(c *fiber.Ctx) error

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

func GetPosts(c *fiber.Ctx) error

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

func GetUserByID(c *fiber.Ctx) error

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

func RegisterAuthRoutes(app *fiber.App)

RegisterAuthRoutes registers authentication routes

func RegisterCommentRoutes

func RegisterCommentRoutes(app *fiber.App)

RegisterCommentRoutes registers comment-related routes under posts

func RegisterFeedRoutes

func RegisterFeedRoutes(app *fiber.App)

RegisterFeedRoutes registers the feed route

func RegisterPostRoutes

func RegisterPostRoutes(app *fiber.App)

RegisterPostRoutes registers post-related routes

func RegisterRoutes

func RegisterRoutes(app *fiber.App)

func RegisterUserRoutes

func RegisterUserRoutes(app *fiber.App)

register user routes

func RegisterWebSocketRoutes

func RegisterWebSocketRoutes(app *fiber.App)

RegisterWebSocketRoutes registers WebSocket routes with Fiber

func SearchUsers

func SearchUsers(c *fiber.Ctx) error

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

func ToggleLike(c *fiber.Ctx) error

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

func UploadMedia(c *fiber.Ctx) error

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL