github.com/twilio/twilio-go@v1.20.1/client/jwt/taskrouter/policy.go (about)

     1  package taskrouter
     2  
     3  type Policy struct {
     4  	Url         string                 `json:"url,omitempty"`
     5  	Method      string                 `json:"method,omitempty"`
     6  	Allow       bool                   `json:"allow,omitempty"`
     7  	PostFilter  map[string]interface{} `json:"post_filter"`
     8  	QueryFilter map[string]interface{} `json:"query_filter"`
     9  }
    10  
    11  func GeneratePolicy(url string, method string, allow bool, postFilters map[string]interface{}, queryFilters map[string]interface{}) Policy {
    12  	return Policy{
    13  		Url:         url,
    14  		Method:      method,
    15  		Allow:       allow,
    16  		PostFilter:  postFilters,
    17  		QueryFilter: queryFilters,
    18  	}
    19  }
    20  
    21  func (policy *Policy) Payload() map[string]interface{} {
    22  	payload := map[string]interface{}{
    23  		"url":          policy.Url,
    24  		"method":       policy.Method,
    25  		"allow":        policy.Allow,
    26  		"post_filter":  map[string]interface{}{},
    27  		"query_filter": map[string]interface{}{},
    28  	}
    29  	if policy.QueryFilter != nil {
    30  		payload["query_filter"] = policy.QueryFilter
    31  	}
    32  	if policy.PostFilter != nil {
    33  		payload["post_filter"] = policy.PostFilter
    34  	}
    35  	return payload
    36  }