imc-vibe/backend/internal/api/handlers/response.go

44 lines
1.2 KiB
Go

// Package handlers provides HTTP request handlers for the API.
package handlers
import (
"github.com/gin-gonic/gin"
)
// Response is the standard JSON response format for all API endpoints.
type Response struct {
Data interface{} `json:"data"`
Error string `json:"error,omitempty"`
Meta *Meta `json:"meta,omitempty"`
}
// Meta contains pagination information for list endpoints.
type Meta struct {
Total int `json:"total,omitempty"`
Page int `json:"page,omitempty"`
}
// JSON sends a response with the given status code and data.
func JSON(c *gin.Context, status int, data interface{}) {
c.JSON(status, Response{Data: data})
}
// Error sends an error response with the given status code and message.
func Error(c *gin.Context, status int, message string) {
c.JSON(status, Response{Error: message})
}
// Success sends a 200 OK response with the given data.
func Success(c *gin.Context, data interface{}) {
JSON(c, 200, data)
}
// Created sends a 201 Created response with the given data.
func Created(c *gin.Context, data interface{}) {
JSON(c, 201, data)
}
// NoContent sends a 204 No Content response.
func NoContent(c *gin.Context) {
c.Status(204)
}