Files
gb28181/internal/web/api/sms.go
2025-03-17 02:19:21 +08:00

81 lines
2.4 KiB
Go
Executable File

// Code generated by gowebx, DO AVOID EDIT.
package api
import (
"github.com/gin-gonic/gin"
"github.com/gowvp/gb28181/internal/conf"
"github.com/gowvp/gb28181/internal/core/sms"
"github.com/gowvp/gb28181/internal/core/sms/store/smsdb"
"github.com/ixugo/goweb/pkg/orm"
"github.com/ixugo/goweb/pkg/web"
"gorm.io/gorm"
)
type SmsAPI struct {
smsCore sms.Core
uc *Usecase
}
func NewSMSCore(db *gorm.DB, cfg *conf.Bootstrap) sms.Core {
core := sms.NewCore(smsdb.NewDB(db).AutoMigrate(orm.EnabledAutoMigrate))
if err := core.Run(&cfg.Media, cfg.Server.HTTP.Port); err != nil {
panic(err)
}
return core
}
func NewSmsAPI(core sms.Core) SmsAPI {
return SmsAPI{smsCore: core}
}
func registerSms(g gin.IRouter, api SmsAPI, handler ...gin.HandlerFunc) {
{
group := g.Group("/media_servers", handler...)
group.GET("", web.WarpH(api.findMediaServer))
group.PUT("/:id", web.WarpH(api.editMediaServer))
// group.GET("/:id", web.WarpH(api.getMediaServer))
// group.POST("", web.WarpH(api.addMediaServer))
// group.DELETE("/:id", web.WarpH(api.delMediaServer))
}
}
// >>> mediaServer >>>>>>>>>>>>>>>>>>>>
func (a SmsAPI) findMediaServer(c *gin.Context, in *sms.FindMediaServerInput) (any, error) {
items, total, err := a.smsCore.FindMediaServer(c.Request.Context(), in)
return gin.H{"items": items, "total": total}, err
}
func (a SmsAPI) getMediaServer(c *gin.Context, _ *struct{}) (any, error) {
mediaServerID := c.Param("id")
return a.smsCore.GetMediaServer(c.Request.Context(), mediaServerID)
}
func (a SmsAPI) editMediaServer(c *gin.Context, in *sms.EditMediaServerInput) (any, error) {
mediaServerID := c.Param("id")
out, err := a.smsCore.EditMediaServer(c.Request.Context(), in, mediaServerID, a.uc.Conf.Server.HTTP.Port)
if err != nil {
return nil, err
}
if mediaServerID == "local" {
a.uc.Conf.Media.IP = out.IP
a.uc.Conf.Media.SDPIP = out.SDPIP
a.uc.Conf.Media.Secret = out.Secret
a.uc.Conf.Media.WebHookIP = out.HookIP
if err := conf.WriteConfig(a.uc.Conf, a.uc.Conf.ConfigPath); err != nil {
return nil, web.ErrServer.Msg(err.Error())
}
}
return out, err
}
func (a SmsAPI) addMediaServer(c *gin.Context, in *sms.AddMediaServerInput) (any, error) {
return a.smsCore.AddMediaServer(c.Request.Context(), in)
}
func (a SmsAPI) delMediaServer(c *gin.Context, _ *struct{}) (any, error) {
mediaServerID := c.Param("id")
return a.smsCore.DelMediaServer(c.Request.Context(), mediaServerID)
}