mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 07:57:21 +08:00
feat: 传递channel参数
This commit is contained in:
@@ -111,9 +111,11 @@ func (r *PanelTask) updatePanel() {
|
||||
return
|
||||
}
|
||||
|
||||
channel, _ := r.settingRepo.Get(biz.SettingKeyChannel)
|
||||
|
||||
// 加 300 秒确保在缓存更新后才更新面板
|
||||
time.AfterFunc(time.Duration(rand.IntN(300))*time.Second+300*time.Second, func() {
|
||||
panel, err := r.api.LatestVersion()
|
||||
panel, err := r.api.LatestVersion(channel)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -96,7 +96,8 @@ func (s *CliService) Start(ctx context.Context, cmd *cli.Command) error {
|
||||
}
|
||||
|
||||
func (s *CliService) Update(ctx context.Context, cmd *cli.Command) error {
|
||||
panel, err := s.api.LatestVersion()
|
||||
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
|
||||
panel, err := s.api.LatestVersion(channel)
|
||||
if err != nil {
|
||||
return errors.New(s.t.Get("Failed to get latest version: %v", err))
|
||||
}
|
||||
|
||||
@@ -230,7 +230,8 @@ func (s *DashboardService) CheckUpdate(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
current := app.Version
|
||||
latest, err := s.api.LatestVersion()
|
||||
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
|
||||
latest, err := s.api.LatestVersion(channel)
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
|
||||
return
|
||||
@@ -265,7 +266,8 @@ func (s *DashboardService) UpdateInfo(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
current := app.Version
|
||||
latest, err := s.api.LatestVersion()
|
||||
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
|
||||
latest, err := s.api.LatestVersion(channel)
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
|
||||
return
|
||||
@@ -286,7 +288,7 @@ func (s *DashboardService) UpdateInfo(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
versions, err := s.api.IntermediateVersions()
|
||||
versions, err := s.api.IntermediateVersions(channel)
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the update information: %v", err))
|
||||
return
|
||||
@@ -306,7 +308,8 @@ func (s *DashboardService) Update(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
panel, err := s.api.LatestVersion()
|
||||
channel, _ := s.settingRepo.Get(biz.SettingKeyChannel)
|
||||
panel, err := s.api.LatestVersion(channel)
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, s.t.Get("failed to get the latest version: %v", err))
|
||||
return
|
||||
|
||||
@@ -18,12 +18,12 @@ func TestAPITestSuite(t *testing.T) {
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetLatestVersion() {
|
||||
_, err := s.api.LatestVersion()
|
||||
_, err := s.api.LatestVersion("stable")
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetIntermediateVersions() {
|
||||
_, err := s.api.IntermediateVersions()
|
||||
_, err := s.api.IntermediateVersions("stable")
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ type Version struct {
|
||||
type Versions []Version
|
||||
|
||||
// LatestVersion 返回最新版本
|
||||
func (r *API) LatestVersion() (*Version, error) {
|
||||
resp, err := r.client.R().SetResult(&Response{}).Get("/version/latest")
|
||||
func (r *API) LatestVersion(channel string) (*Version, error) {
|
||||
resp, err := r.client.R().SetResult(&Response{}).SetQueryParam("channel", channel).Get("/version/latest")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -52,9 +52,10 @@ func (r *API) LatestVersion() (*Version, error) {
|
||||
}
|
||||
|
||||
// IntermediateVersions 返回当前版本之后的所有版本
|
||||
func (r *API) IntermediateVersions() (*Versions, error) {
|
||||
func (r *API) IntermediateVersions(channel string) (*Versions, error) {
|
||||
resp, err := r.client.R().
|
||||
SetQueryParam("start", r.panelVersion).
|
||||
SetQueryParam("channel", channel).
|
||||
SetResult(&Response{}).Get("/version/intermediate")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user