Files
3m-ui/backend/internal/subpage/api.go
T

44 lines
975 B
Go

package subpage
import (
"net/http"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
type Handler struct {
db *gorm.DB
}
func NewHandler(db *gorm.DB) *Handler {
return &Handler{db: db}
}
func (h *Handler) RegisterRoutes(rg *gin.RouterGroup) {
rg.GET("/subscription-page", h.Get)
rg.PUT("/subscription-page", h.Put)
rg.GET("/subscription-page/default-template", h.DefaultTemplate)
}
func (h *Handler) Get(c *gin.Context) {
c.JSON(http.StatusOK, LoadPageSettings(h.db))
}
func (h *Handler) Put(c *gin.Context) {
var in Settings
if err := c.ShouldBindJSON(&in); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if err := SavePageSettings(h.db, in); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, LoadPageSettings(h.db))
}
func (h *Handler) DefaultTemplate(c *gin.Context) {
c.Data(http.StatusOK, "text/plain; charset=utf-8", []byte(DefaultTemplate()))
}