handlers

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HealthHandler

type HealthHandler struct {
	// contains filtered or unexported fields
}

func NewHealthHandler

func NewHealthHandler(service services.HealthServiceInterface) *HealthHandler

func (*HealthHandler) GetDetailedHealth

func (handler *HealthHandler) GetDetailedHealth(ctx *gin.Context)

GetDetailedHealth godoc @Summary Detailed health check @Description Get detailed health information including database stats and table counts @Tags system @Accept json @Produce json @Success 200 {object} object{status=string,timestamp=string,database=object,database_stats=object,table_counts=object} @Failure 503 {object} models.ErrorResponse @Router /health/detailed [get]

func (*HealthHandler) GetHealth

func (handler *HealthHandler) GetHealth(ctx *gin.Context)

GetHealth godoc @Summary Health check @Description Check API and database health status @Tags system @Accept json @Produce json @Success 200 {object} models.HealthResponse @Failure 503 {object} models.ErrorResponse @Router /health [get]

type HealthHandlerInterface

type HealthHandlerInterface interface {
	GetHealth(ctx *gin.Context)
	GetDetailedHealth(ctx *gin.Context)
}

HealthHandlerInterface defines methods for health check handlers

type HostHandler

type HostHandler struct {
	// contains filtered or unexported fields
}

func NewHostHandler

func NewHostHandler(service services.HostServiceInterface) *HostHandler

func (*HostHandler) Create

func (handler *HostHandler) Create(ctx *gin.Context)

Create godoc @Summary Register a new host @Description Register a new Raspberry Pi host in the monitoring system or update if already exists @Tags hosts @Accept json @Produce json @Param request body models.CreateHostRequest true "Host information" @Success 201 {object} object{message=string,id=int64} @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts [post]

func (*HostHandler) Delete

func (handler *HostHandler) Delete(ctx *gin.Context)

Delete godoc @Summary Delete a host @Description Delete a host and all its associated metrics @Tags hosts @Accept json @Produce json @Param id path int true "Host ID" @Success 200 {object} object{message=string} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts/{id} [delete]

func (*HostHandler) Get

func (handler *HostHandler) Get(ctx *gin.Context)

Get List godoc @Summary List all hosts @Description Get a list of all registered hosts in the monitoring system @Tags hosts @Accept json @Produce json @Param id query int false "Filter by host ID" @Param hostname query string false "Filter by hostname" @Param ip_address query string false "Filter by IP address" @Success 200 {object} models.HostListResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts [get]

func (*HostHandler) Update

func (handler *HostHandler) Update(ctx *gin.Context)

Update godoc @Summary Update a host @Description Update an existing host's information @Tags hosts @Accept json @Produce json @Param id path int true "Host ID" @Param request body models.CreateHostRequest true "Host information" @Success 200 {object} object{message=string} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /hosts/{id} [put]

type HostHandlerInterface

type HostHandlerInterface interface {
	Create(ctx *gin.Context)
	Get(ctx *gin.Context)
	Update(ctx *gin.Context)
	Delete(ctx *gin.Context)
}

HostHandlerInterface defines methods for host handlers

type MetricHandler

type MetricHandler struct {
	// contains filtered or unexported fields
}

func NewMetricHandler

func NewMetricHandler(service services.MetricServiceInterface) *MetricHandler

func (*MetricHandler) Create

func (handler *MetricHandler) Create(ctx *gin.Context)

Create godoc @Summary Submit system metrics @Description Submit new system metrics from a monitoring agent @Tags metrics @Accept json @Produce json @Param request body models.CreateMetricRequest true "Metric data" @Success 201 {object} object{message=string,id=int64} @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics [post]

func (*MetricHandler) Get

func (handler *MetricHandler) Get(ctx *gin.Context)

Get godoc @Summary Get system metrics @Description Retrieve system metrics with optional filtering and time range @Tags metrics @Accept json @Produce json @Param host_id query int false "Filter by host ID" @Param limit query int false "Limit results (max 1000)" default(100) @Param order query string false "Sort order (ASC or DESC)" default(DESC) @Param start_time query int false "Start timestamp (Unix)" @Param end_time query int false "End timestamp (Unix)" @Success 200 {object} models.MetricListResponse @Failure 400 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics [get]

func (*MetricHandler) GetLatest

func (handler *MetricHandler) GetLatest(ctx *gin.Context)

GetLatest godoc @Summary Get latest metrics @Description Retrieve the most recent metrics for each host or a specific host @Tags metrics @Accept json @Produce json @Param host_id query int false "Filter by host ID" @Success 200 {object} object{metric=models.SystemMetric} @Failure 400 {object} models.ErrorResponse @Failure 404 {object} models.ErrorResponse @Failure 500 {object} models.ErrorResponse @Router /metrics/latest [get]

type MetricHandlerInterface

type MetricHandlerInterface interface {
	Create(ctx *gin.Context)
	Get(ctx *gin.Context)
	GetLatest(ctx *gin.Context)
}

MetricHandlerInterface defines methods for metric handlers

Jump to

Keyboard shortcuts

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