feat: support prowlarr connection

This commit is contained in:
Simon Ding
2024-10-20 16:21:58 +08:00
parent 0e6465593b
commit b317636a8a
15 changed files with 281 additions and 12 deletions

View File

@@ -8,6 +8,7 @@ import (
"polaris/ent"
"polaris/ent/downloadclients"
"polaris/log"
"polaris/pkg/prowlarr"
"polaris/pkg/qbittorrent"
"polaris/pkg/torznab"
"polaris/pkg/transmission"
@@ -303,3 +304,26 @@ func (s *Server) TriggerCronJob(c *gin.Context) (interface{}, error) {
}
return "success", nil
}
func (s *Server) GetProwlarrSetting(c *gin.Context) (interface{}, error) {
se, err :=s.db.GetProwlarrSetting()
if err != nil {
return &db.ProwlarrSetting{}, nil
}
return se, nil
}
func (s *Server) SaveProwlarrSetting(c *gin.Context) (interface{}, error) {
var in db.ProwlarrSetting
if err := c.ShouldBindJSON(&in); err != nil {
return nil, err
}
client := prowlarr.New(in.ApiKey, in.URL)
if _, err := client.GetIndexers(); err != nil {
return nil, errors.Wrap(err, "connect to prowlarr error")
}
err := s.db.SaveProwlarrSetting(&in)
if err != nil {
return nil, err
}
return "success", nil
}