/
phone_numbers.go
96 lines (83 loc) · 3.46 KB
/
phone_numbers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
* This code was generated by
* ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
* | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
* | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
*
* Twilio - Lookups
* This is the public Twilio REST API.
*
* NOTE: This class is auto generated by OpenAPI Generator.
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package openapi
import (
"encoding/json"
"net/url"
"strings"
)
// Optional parameters for the method 'FetchPhoneNumber'
type FetchPhoneNumberParams struct {
// The [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the phone number to fetch. This is used to specify the country when the phone number is provided in a national format.
CountryCode *string `json:"CountryCode,omitempty"`
// The type of information to return. Can be: `carrier` or `caller-name`. The default is null. Carrier information costs $0.005 per phone number looked up. Caller Name information is currently available only in the US and costs $0.01 per phone number looked up. To retrieve both types on information, specify this parameter twice; once with `carrier` and once with `caller-name` as the value.
Type *[]string `json:"Type,omitempty"`
// The `unique_name` of an Add-on you would like to invoke. Can be the `unique_name` of an Add-on that is installed on your account. You can specify multiple instances of this parameter to invoke multiple Add-ons. For more information about Add-ons, see the [Add-ons documentation](https://www.twilio.com/docs/add-ons).
AddOns *[]string `json:"AddOns,omitempty"`
// Data specific to the add-on you would like to invoke. The content and format of this value depends on the add-on.
AddOnsData *map[string]interface{} `json:"AddOnsData,omitempty"`
}
func (params *FetchPhoneNumberParams) SetCountryCode(CountryCode string) *FetchPhoneNumberParams {
params.CountryCode = &CountryCode
return params
}
func (params *FetchPhoneNumberParams) SetType(Type []string) *FetchPhoneNumberParams {
params.Type = &Type
return params
}
func (params *FetchPhoneNumberParams) SetAddOns(AddOns []string) *FetchPhoneNumberParams {
params.AddOns = &AddOns
return params
}
func (params *FetchPhoneNumberParams) SetAddOnsData(AddOnsData map[string]interface{}) *FetchPhoneNumberParams {
params.AddOnsData = &AddOnsData
return params
}
//
func (c *ApiService) FetchPhoneNumber(PhoneNumber string, params *FetchPhoneNumberParams) (*LookupsV1PhoneNumber, error) {
path := "/v1/PhoneNumbers/{PhoneNumber}"
path = strings.Replace(path, "{"+"PhoneNumber"+"}", PhoneNumber, -1)
data := url.Values{}
headers := make(map[string]interface{})
if params != nil && params.CountryCode != nil {
data.Set("CountryCode", *params.CountryCode)
}
if params != nil && params.Type != nil {
for _, item := range *params.Type {
data.Add("Type", item)
}
}
if params != nil && params.AddOns != nil {
for _, item := range *params.AddOns {
data.Add("AddOns", item)
}
}
if params != nil && params.AddOnsData != nil {
v, err := json.Marshal(params.AddOnsData)
if err != nil {
return nil, err
}
data.Set("AddOnsData", string(v))
}
resp, err := c.requestHandler.Get(c.baseURL+path, data, headers)
if err != nil {
return nil, err
}
defer resp.Body.Close()
ps := &LookupsV1PhoneNumber{}
if err := json.NewDecoder(resp.Body).Decode(ps); err != nil {
return nil, err
}
return ps, err
}