67 lines
1.2 KiB
Go
67 lines
1.2 KiB
Go
package qinglong
|
|
|
|
type EnvResponse struct {
|
|
Code int `json:"code"`
|
|
Data []Env `json:"data"`
|
|
}
|
|
|
|
type Env struct {
|
|
Value string `json:"value,omitempty"`
|
|
ID string `json:"_id,omitempty"`
|
|
Status int `json:"status,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Timestamp string `json:"timestamp,omitempty"`
|
|
Remarks string `json:"remarks,omitempty"`
|
|
}
|
|
|
|
func GetEnv(searchValue string) (*Env, error) {
|
|
envs, err := GetEnvs(searchValue)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if len(envs) == 0 {
|
|
return nil, nil
|
|
}
|
|
return &envs[0], nil
|
|
}
|
|
|
|
func GetEnvs(searchValue string) ([]Env, error) {
|
|
er := EnvResponse{}
|
|
if err := req(ENVS, &er, "?searchValue="+searchValue); err != nil {
|
|
return nil, err
|
|
}
|
|
return er.Data, nil
|
|
}
|
|
|
|
func SetEnv(e *Env) error {
|
|
es, err := GetEnvs(e.Name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if len(es) == 0 {
|
|
return AddEnv(e)
|
|
}
|
|
e.ID = es[0].ID
|
|
return req(PUT, ENVS, *e)
|
|
}
|
|
|
|
func AddEnv(e *Env) error {
|
|
return req(POST, ENVS, []Env{*e})
|
|
}
|
|
|
|
func RemEnv(e *Env) error {
|
|
es, err := GetEnvs(e.Name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if len(es) == 0 {
|
|
return nil
|
|
}
|
|
td := []string{}
|
|
for _, e := range es {
|
|
td = append(td, e.ID)
|
|
}
|
|
return req(DELETE, ENVS, td)
|
|
}
|