mirror of
https://github.com/gowvp/gb28181.git
synced 2025-09-26 19:41:19 +08:00
81 lines
2.4 KiB
Go
Executable File
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)
|
|
}
|