Merge pull request #2 from 764763903a/test

修改为openapi 全面支持2.9 解决xdd和青龙抢登录问题
This commit is contained in:
764763903a 2021-09-02 10:52:33 +08:00 committed by GitHub
commit 9f79cfcbca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -113,7 +113,7 @@ func initContainer() {
func (c *Container) write(cks []JdCookie) error {
switch c.Type {
case "ql":
if (c.Version == "2.9" || c.Version == "2.8"){
if c.Version == "2.9" || c.Version == "2.8" {
if len(c.Delete) > 0 {
c.request("/api/envs", DELETE, fmt.Sprintf(`[%s]`, strings.Join(c.Delete, ",")))
}
@ -237,7 +237,7 @@ func (c *Container) read() error {
c.Available = true
switch c.Type {
case "ql":
if (c.Version == "2.9" || c.Version == "2.8") {
if c.Version == "2.9" || c.Version == "2.8" {
type AutoGenerated struct {
Code int `json:"code"`
Data []struct {
@ -349,20 +349,35 @@ func (c *Container) read() error {
}
func (c *Container) getToken() error {
req := httplib.Post(c.Address + "/api/login")
req.Header("Content-Type", "application/json;charset=UTF-8")
req.Body(fmt.Sprintf(`{"username":"%s","password":"%s"}`, c.Username, c.Password))
if rsp, err := req.Response(); err == nil {
data, err := ioutil.ReadAll(rsp.Body)
if err != nil {
if c.Version == "2.9" {
req := httplib.Get(c.Address + fmt.Sprintf(`/open/auth/token?client_id=%s&client_secret=%s`, c.Username, c.Password))
req.Header("Content-Type", "application/json;charset=UTF-8")
if rsp, err := req.Response(); err == nil {
data, err := ioutil.ReadAll(rsp.Body)
if err != nil {
return err
}
c.Token, _ = jsonparser.GetString(data, "data", "token")
logs.Info(c.Token)
} else {
return err
}
c.Token, _ = jsonparser.GetString(data, "token")
if c.Token == "" {
c.Token, _ = jsonparser.GetString(data, "data", "token")
}
} else {
return err
req := httplib.Post(c.Address + "/api/login")
req.Header("Content-Type", "application/json;charset=UTF-8")
req.Body(fmt.Sprintf(`{"username":"%s","password":"%s"}`, c.Username, c.Password))
if rsp, err := req.Response(); err == nil {
data, err := ioutil.ReadAll(rsp.Body)
if err != nil {
return err
}
c.Token, _ = jsonparser.GetString(data, "token")
if c.Token == "" {
c.Token, _ = jsonparser.GetString(data, "data", "token")
}
} else {
return err
}
}
return nil
}
@ -373,6 +388,9 @@ func (c *Container) request(ss ...string) ([]byte, error) {
if s == GET || s == POST || s == PUT || s == DELETE {
method = s
} else if strings.Contains(s, "/api/") {
if c.Version == "2.9" {
strings.ReplaceAll(s, "api", "open")
}
api = s
} else {
body = s
@ -432,7 +450,7 @@ func GetQlVersion(address string) (string, error) {
} else if strings.Contains(data, "v2.2") {
v = "2.2"
} else if strings.Contains(data, "v2.9") {
v = "2.9"
v = "2.9"
}
return v, nil
}
@ -490,20 +508,39 @@ func (c *Container) postConfig(handle func(config string) string) error {
}
func (c *Container) getSession() error {
req := httplib.Post(c.Address + "/auth")
req.Param("username", c.Username)
req.Param("password", c.Password)
rsp, err := req.Response()
if err != nil {
return err
}
c.Token = rsp.Header.Get("Set-Cookie")
if data, err := ioutil.ReadAll(rsp.Body); err != nil {
return err
if c.Version == "2.9" {
req := httplib.Post(c.Address + "/open/auth")
req.Param("username", c.Username)
req.Param("password", c.Password)
rsp, err := req.Response()
if err != nil {
return err
}
c.Token = rsp.Header.Get("Set-Cookie")
if data, err := ioutil.ReadAll(rsp.Body); err != nil {
return err
} else {
err, _ := jsonparser.GetInt(data, "err")
if err != 0 {
return errors.New(string(data))
}
}
} else {
err, _ := jsonparser.GetInt(data, "err")
if err != 0 {
return errors.New(string(data))
req := httplib.Post(c.Address + "/auth")
req.Param("username", c.Username)
req.Param("password", c.Password)
rsp, err := req.Response()
if err != nil {
return err
}
c.Token = rsp.Header.Get("Set-Cookie")
if data, err := ioutil.ReadAll(rsp.Body); err != nil {
return err
} else {
err, _ := jsonparser.GetInt(data, "err")
if err != 0 {
return errors.New(string(data))
}
}
}
return nil