2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 22:07:16 +08:00
Files
panel/pkg/api/version.go
耗子 dded5e26aa feat: 支持远程插件 (#180)
* feat: api基本完成

* feat: 阶段性提交

* feat: 初步支持远程插件

* feat: 支持远程插件

* fix: tests
2024-09-19 01:17:29 +08:00

54 lines
1.2 KiB
Go

package api
import (
"fmt"
"time"
)
type Version struct {
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Version string `json:"version"`
Description string `json:"description"`
}
type Versions []Version
// LatestVersion 返回最新版本
func (r *API) LatestVersion() (*Version, error) {
resp, err := r.client.R().SetResult(&Response{}).Get("/versions/latest")
if err != nil {
return nil, err
}
if !resp.IsSuccess() {
return nil, fmt.Errorf("failed to get latest version: %s", resp.String())
}
version, err := getResponseData[Version](resp)
if err != nil {
return nil, err
}
return version, nil
}
// IntermediateVersions 返回当前版本之后的所有版本
func (r *API) IntermediateVersions() (*Versions, error) {
resp, err := r.client.R().
SetQueryParam("start", r.panelVersion).
SetResult(&Response{}).Get("/versions/intermediate")
if err != nil {
return nil, err
}
if !resp.IsSuccess() {
return nil, fmt.Errorf("failed to get intermediate versions: %s", resp.String())
}
versions, err := getResponseData[Versions](resp)
if err != nil {
return nil, err
}
return versions, nil
}