Files
MyGoServer/internal/apiserver/handlers/time.go

44 lines
1.2 KiB
Go

// It's just test file. I'll remove it later
package handlers
import (
"encoding/json"
"net/http"
"time"
"git.nwaifu.su/sergey/MyGoServer/internal/apiserver/models"
)
// TimeHandler handles the time endpoint
type TimeHandler struct{}
func NewTimeHandler() *TimeHandler {
return &TimeHandler{}
}
// ServeHTTP implements http.Handler
func (h *TimeHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
h.handleTime(w, r)
}
// @Summary Get server time
// @Description Возвращает текущее серверное время в формате ISO 8601
// @Tags Time
// @Success 200 {object} models.Response "Текущее время сервера"
// @Router /time [get]
func (h *TimeHandler) handleTime(w http.ResponseWriter, r *http.Request) {
// Get current time in UTC
currentTime := time.Now().UTC()
// Create response with time data
response := models.NewSuccessResponse(map[string]interface{}{
"server_time": currentTime.Format(time.RFC3339),
"unix_timestamp": currentTime.Unix(),
"timezone": "UTC",
})
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(response)
}