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  }