github.com/qiniu/go-sdk/v7@v7.27.0/sandbox/injection_rule.go (about) 1 package sandbox 2 3 import ( 4 "context" 5 ) 6 7 // ListInjectionRules 列出当前用户的所有注入规则。 8 func (c *Client) ListInjectionRules(ctx context.Context) ([]InjectionRule, error) { 9 cred, err := c.GetCredentialsOption() 10 if err != nil { 11 return nil, err 12 } 13 resp, err := c.api.GetInjectionRulesWithResponse(ctx, cred) 14 if err != nil { 15 return nil, err 16 } 17 if resp.JSON200 == nil { 18 return nil, newAPIError(resp.HTTPResponse, resp.Body) 19 } 20 return injectionRulesFromAPI(*resp.JSON200) 21 } 22 23 // CreateInjectionRule 创建一个新的注入规则。 24 func (c *Client) CreateInjectionRule(ctx context.Context, body CreateInjectionRuleParams) (*InjectionRule, error) { 25 apiBody, err := body.toAPI() 26 if err != nil { 27 return nil, err 28 } 29 cred, err := c.GetCredentialsOption() 30 if err != nil { 31 return nil, err 32 } 33 resp, err := c.api.PostInjectionRulesWithResponse(ctx, apiBody, cred) 34 if err != nil { 35 return nil, err 36 } 37 if resp.JSON201 == nil { 38 return nil, newAPIError(resp.HTTPResponse, resp.Body) 39 } 40 r, err := injectionRuleFromAPI(*resp.JSON201) 41 if err != nil { 42 return nil, err 43 } 44 return &r, nil 45 } 46 47 // GetInjectionRule 获取指定注入规则的详情。 48 func (c *Client) GetInjectionRule(ctx context.Context, ruleID string) (*InjectionRule, error) { 49 cred, err := c.GetCredentialsOption() 50 if err != nil { 51 return nil, err 52 } 53 resp, err := c.api.GetInjectionRulesRuleIDWithResponse(ctx, ruleID, cred) 54 if err != nil { 55 return nil, err 56 } 57 if resp.JSON200 == nil { 58 return nil, newAPIError(resp.HTTPResponse, resp.Body) 59 } 60 r, err := injectionRuleFromAPI(*resp.JSON200) 61 if err != nil { 62 return nil, err 63 } 64 return &r, nil 65 } 66 67 // UpdateInjectionRule 更新指定的注入规则。 68 func (c *Client) UpdateInjectionRule(ctx context.Context, ruleID string, body UpdateInjectionRuleParams) (*InjectionRule, error) { 69 apiBody, err := body.toAPI() 70 if err != nil { 71 return nil, err 72 } 73 cred, err := c.GetCredentialsOption() 74 if err != nil { 75 return nil, err 76 } 77 resp, err := c.api.PutInjectionRulesRuleIDWithResponse(ctx, ruleID, apiBody, cred) 78 if err != nil { 79 return nil, err 80 } 81 if resp.JSON200 == nil { 82 return nil, newAPIError(resp.HTTPResponse, resp.Body) 83 } 84 r, err := injectionRuleFromAPI(*resp.JSON200) 85 if err != nil { 86 return nil, err 87 } 88 return &r, nil 89 } 90 91 // DeleteInjectionRule 删除指定的注入规则。 92 func (c *Client) DeleteInjectionRule(ctx context.Context, ruleID string) error { 93 cred, err := c.GetCredentialsOption() 94 if err != nil { 95 return err 96 } 97 resp, err := c.api.DeleteInjectionRulesRuleIDWithResponse(ctx, ruleID, cred) 98 if err != nil { 99 return err 100 } 101 if resp.HTTPResponse.StatusCode != 204 { 102 return newAPIError(resp.HTTPResponse, resp.Body) 103 } 104 return nil 105 }