mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 01:57:19 +08:00
feat: 适配最新api
This commit is contained in:
@@ -13,7 +13,7 @@ type APITestSuite struct {
|
||||
|
||||
func TestAPITestSuite(t *testing.T) {
|
||||
suite.Run(t, &APITestSuite{
|
||||
api: NewAPI("2.3.0", "en"),
|
||||
api: NewAPI("3.0.0", "en"),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -27,6 +27,11 @@ func (s *APITestSuite) TestGetIntermediateVersions() {
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetCategories() {
|
||||
_, err := s.api.Categories()
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetApps() {
|
||||
_, err := s.api.Apps()
|
||||
s.NoError(err)
|
||||
@@ -37,6 +42,16 @@ func (s *APITestSuite) TestGetAppBySlug() {
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetTemplates() {
|
||||
_, err := s.api.Templates()
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetTemplateBySlug() {
|
||||
_, err := s.api.TemplateBySlug("nginx")
|
||||
s.NoError(err)
|
||||
}
|
||||
|
||||
func (s *APITestSuite) TestGetRewritesByType() {
|
||||
_, err := s.api.RewritesByType("nginx")
|
||||
s.NoError(err)
|
||||
|
||||
29
pkg/api/category.go
Normal file
29
pkg/api/category.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package api
|
||||
|
||||
import "fmt"
|
||||
|
||||
type Category struct {
|
||||
Slug string `json:"slug"`
|
||||
Name string `json:"name"`
|
||||
Order int `json:"order"`
|
||||
}
|
||||
|
||||
type Categories []*Category
|
||||
|
||||
// Categories 返回所有分类
|
||||
func (r *API) Categories() (*Categories, error) {
|
||||
resp, err := r.client.R().SetResult(&Response{}).Get("/categories")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !resp.IsSuccess() {
|
||||
return nil, fmt.Errorf("failed to get categories: %s", resp.String())
|
||||
}
|
||||
|
||||
categories, err := getResponseData[Categories](resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return categories, nil
|
||||
}
|
||||
62
pkg/api/template.go
Normal file
62
pkg/api/template.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Template struct {
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
Slug string `json:"slug"`
|
||||
Icon string `json:"icon"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Categories []string `json:"categories"`
|
||||
Version string `json:"version"`
|
||||
Compose string `json:"compose"`
|
||||
Environments []struct {
|
||||
Name string `json:"name"` // 变量名
|
||||
Type string `json:"type"` // 变量类型, text, password, number, port, select
|
||||
Options map[string]string `json:"options,omitempty"` // 下拉框选项,key -> value
|
||||
Default string `json:"default"` // 默认值
|
||||
} `json:"environments"`
|
||||
}
|
||||
|
||||
type Templates []*Template
|
||||
|
||||
// Templates 返回所有模版
|
||||
func (r *API) Templates() (*Templates, error) {
|
||||
resp, err := r.client.R().SetResult(&Response{}).Get("/templates")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !resp.IsSuccess() {
|
||||
return nil, fmt.Errorf("failed to get templates: %s", resp.String())
|
||||
}
|
||||
|
||||
templates, err := getResponseData[Templates](resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return templates, nil
|
||||
}
|
||||
|
||||
// TemplateBySlug 根据slug返回模版
|
||||
func (r *API) TemplateBySlug(slug string) (*Template, error) {
|
||||
resp, err := r.client.R().SetResult(&Response{}).Get(fmt.Sprintf("/templates/%s", slug))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !resp.IsSuccess() {
|
||||
return nil, fmt.Errorf("failed to get template: %s", resp.String())
|
||||
}
|
||||
|
||||
template, err := getResponseData[Template](resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return template, nil
|
||||
}
|
||||
Reference in New Issue
Block a user