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

     1  package jwt
     2  
     3  import "fmt"
     4  
     5  type VoiceGrant struct {
     6  	Incoming          Incoming `json:"incoming"`
     7  	Outgoing          Outgoing `json:"outgoing"`
     8  	PushCredentialSid string   `json:"push_credential_sid"`
     9  	EndpointID        string   `json:"endpoint_id"`
    10  }
    11  
    12  type Incoming struct {
    13  	Allow bool `json:"allow"`
    14  }
    15  
    16  type Outgoing struct {
    17  	ApplicationSid    string                 `json:"application_sid"`
    18  	ApplicationParams map[string]interface{} `json:"params"`
    19  }
    20  
    21  func (voiceGrant *VoiceGrant) Key() string {
    22  	return "voice"
    23  }
    24  
    25  func (voiceGrant *VoiceGrant) ToPayload() map[string]interface{} {
    26  	grant := make(map[string]interface{})
    27  	if voiceGrant.Incoming.Allow {
    28  		grant["incoming"] = map[string]interface{}{
    29  			"allow": true,
    30  		}
    31  	}
    32  	if voiceGrant.Outgoing.ApplicationSid != "" {
    33  		grant["outgoing"] = map[string]interface{}{
    34  			"application_sid": voiceGrant.Outgoing.ApplicationSid,
    35  		}
    36  		if len(voiceGrant.Outgoing.ApplicationParams) != 0 {
    37  			grant["outgoing"].(map[string]interface{})["params"] = voiceGrant.Outgoing.ApplicationParams
    38  		}
    39  	}
    40  
    41  	if voiceGrant.PushCredentialSid != "" {
    42  		grant["push_credential_sid"] = voiceGrant.PushCredentialSid
    43  	}
    44  	if voiceGrant.EndpointID != "" {
    45  		grant["endpoint_id"] = voiceGrant.EndpointID
    46  	}
    47  
    48  	return grant
    49  }
    50  
    51  func (voiceGrant *VoiceGrant) ToString() string {
    52  	return fmt.Sprintf("<%s %s>", "VoiceGrant", voiceGrant.ToPayload())
    53  }