Add swaggo annotations to all handlers and regenerate full Swagger docs
- Added @Summary/@Router/@Param/@Success/@Security annotations to all API handlers - Regenerated docs/swagger.json, docs/swagger.yaml, docs/docs.go with full endpoint definitions - Fixed generated docs.go to remove unsupported LeftDelim/RightDelim fields
This commit is contained in:
@@ -61,6 +61,19 @@ type createMessageRequest struct {
|
||||
ReplyTo *string `json:"reply_to,omitempty"`
|
||||
}
|
||||
|
||||
// @Summary Create a message
|
||||
// @Description Send a message to a channel
|
||||
// @Tags messages
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security SessionAuth
|
||||
// @Param channelID path string true "Channel ID"
|
||||
// @Param body body createMessageRequest true "Message data"
|
||||
// @Success 201 {object} messageResponse
|
||||
// @Failure 400 {object} map[string]string
|
||||
// @Failure 401 {object} map[string]string
|
||||
// @Failure 403 {object} map[string]string
|
||||
// @Router /channels/{channelID}/messages [post]
|
||||
func (h *Handler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
channelID := chi.URLParam(r, "channelID")
|
||||
userID, ok := h.requireChannelAccess(w, r, channelID)
|
||||
@@ -129,6 +142,20 @@ type updateMessageRequest struct {
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
// @Summary Update a message
|
||||
// @Description Edit a message (author only)
|
||||
// @Tags messages
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Security SessionAuth
|
||||
// @Param channelID path string true "Channel ID"
|
||||
// @Param messageID path string true "Message ID"
|
||||
// @Param body body updateMessageRequest true "Message update data"
|
||||
// @Success 200 {object} messageResponse
|
||||
// @Failure 400 {object} map[string]string
|
||||
// @Failure 401 {object} map[string]string
|
||||
// @Failure 404 {object} map[string]string
|
||||
// @Router /channels/{channelID}/messages/{messageID} [patch]
|
||||
func (h *Handler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
messageID := chi.URLParam(r, "messageID")
|
||||
userID, ok := middleware.UserIDFromContext(r.Context())
|
||||
@@ -188,6 +215,16 @@ func (h *Handler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
json.NewEncoder(w).Encode(msg)
|
||||
}
|
||||
|
||||
// @Summary Delete a message
|
||||
// @Description Delete a message (author only)
|
||||
// @Tags messages
|
||||
// @Security SessionAuth
|
||||
// @Param channelID path string true "Channel ID"
|
||||
// @Param messageID path string true "Message ID"
|
||||
// @Success 204
|
||||
// @Failure 401 {object} map[string]string
|
||||
// @Failure 404 {object} map[string]string
|
||||
// @Router /channels/{channelID}/messages/{messageID} [delete]
|
||||
func (h *Handler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
messageID := chi.URLParam(r, "messageID")
|
||||
userID, ok := middleware.UserIDFromContext(r.Context())
|
||||
@@ -221,6 +258,18 @@ func (h *Handler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
}
|
||||
|
||||
// @Summary List messages
|
||||
// @Description List messages in a channel with pagination
|
||||
// @Tags messages
|
||||
// @Produce json
|
||||
// @Security SessionAuth
|
||||
// @Param channelID path string true "Channel ID"
|
||||
// @Param limit query int false "Max messages to return (1-100, default 50)"
|
||||
// @Param before query string false "Message ID to fetch messages before"
|
||||
// @Success 200 {array} messageResponse
|
||||
// @Failure 401 {object} map[string]string
|
||||
// @Failure 403 {object} map[string]string
|
||||
// @Router /channels/{channelID}/messages [get]
|
||||
func (h *Handler) List(w http.ResponseWriter, r *http.Request) {
|
||||
channelID := chi.URLParam(r, "channelID")
|
||||
userID, ok := h.requireChannelAccess(w, r, channelID)
|
||||
|
||||
Reference in New Issue
Block a user