52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package sub
|
|
|
|
import (
|
|
"s-ui/logger"
|
|
"s-ui/service"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type SubHandler struct {
|
|
service.SettingService
|
|
SubService
|
|
JsonService
|
|
}
|
|
|
|
func NewSubHandler(g *gin.RouterGroup) {
|
|
a := &SubHandler{}
|
|
a.initRouter(g)
|
|
}
|
|
|
|
func (s *SubHandler) initRouter(g *gin.RouterGroup) {
|
|
g.GET("/:subid", s.subs)
|
|
}
|
|
|
|
func (s *SubHandler) subs(c *gin.Context) {
|
|
subId := c.Param("subid")
|
|
format, isFormat := c.GetQuery("format")
|
|
if isFormat {
|
|
result, err := s.JsonService.GetJson(subId, format)
|
|
if err != nil || result == nil {
|
|
logger.Error(err)
|
|
c.String(400, "Error!")
|
|
} else {
|
|
c.String(200, *result)
|
|
}
|
|
} else {
|
|
result, headers, err := s.SubService.GetSubs(subId)
|
|
if err != nil || result == nil {
|
|
logger.Error(err)
|
|
c.String(400, "Error!")
|
|
} else {
|
|
|
|
// Add headers
|
|
c.Writer.Header().Set("Subscription-Userinfo", headers[0])
|
|
c.Writer.Header().Set("Profile-Update-Interval", headers[1])
|
|
c.Writer.Header().Set("Profile-Title", headers[2])
|
|
|
|
c.String(200, *result)
|
|
}
|
|
}
|
|
}
|