-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdialer-campaign.go
113 lines (85 loc) · 4.63 KB
/
dialer-campaign.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package aircall
import "fmt"
// Dialer Campaign service
type DialerCampaignsService service
type DialerCampaign struct {
ID int `json:"id,omitempty"`
NumberID string `json:"number_id,omitempty"`
CreatedAt interface{} `json:"created_at,omitempty"`
}
type CreateUpdateDialerCampaign struct {
PhoneNumbers []string `json:"phone_numbers,omitempty"`
}
type DialerCampaignPhoneNumberResponse struct {
PhoneNumbers *[]DialerCampaignPhoneNumber `json:"numbers,omitempty"`
}
type DialerCampaignPhoneNumber struct {
ID int `json:"id,omitempty"`
Number string `json:"number,omitempty"`
Called bool `json:"called,omitempty"`
CreatedAt interface{} `json:"created_at,omitempty"`
}
// ***********************************************************************************
// GET DIALER CAMPAIGN
// https://developer.aircall.io/api-references/#retrieve-a-dialer-campaign
// ***********************************************************************************
// Get a dialer campaign. Reference: https://developer.aircall.io/api-references/#retrieve-a-dialer-campaign
func (service *DialerCampaignsService) Get(userID int) (*DialerCampaign, *Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign", userID)
responseBody := new(DialerCampaign)
response, err := service.client.Get(_url, nil, responseBody)
if err != nil {
return nil, response, err
}
return responseBody, response, nil
}
// ***********************************************************************************
// CREATE DIALER CAMPAIGN
// https://developer.aircall.io/api-references/#create-a-dialer-campaign
// ***********************************************************************************
// Create a dialer campaign. Reference: https://developer.aircall.io/api-references/#create-a-dialer-campaign
func (service *DialerCampaignsService) Create(userID int, dialerCampaign *CreateUpdateDialerCampaign) (*Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign", userID)
return service.client.Post(_url, dialerCampaign, nil)
}
// ***********************************************************************************
// DELETE DIALER CAMPAIGN
// https://developer.aircall.io/api-references/#delete-a-dialer-campaign
// ***********************************************************************************
// Delete a dialer campaign. Reference: https://developer.aircall.io/api-references/#delete-a-dialer-campaign
func (service *DialerCampaignsService) Delete(userId int) (*Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign", userId)
return service.client.Delete(_url)
}
// ***********************************************************************************
// LIST DIALER CAMPAIGN PHONE NUMBERS
// https://developer.aircall.io/api-references/#retrieve-phone-numbers
// ***********************************************************************************
// List dialer campaign phone numbers. Reference: https://developer.aircall.io/api-references/#retrieve-phone-numbers
func (service *DialerCampaignsService) ListNumbers(userId int) (*DialerCampaignPhoneNumberResponse, *Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign/phone_numbers", userId)
responseBody := new(DialerCampaignPhoneNumberResponse)
response, err := service.client.Get(_url, nil, responseBody)
if err != nil {
return nil, response, err
}
return responseBody, response, nil
}
// ***********************************************************************************
// ADD DIALER CAMPAIGN PHONE NUMBERS
// https://developer.aircall.io/api-references/#add-phone-numbers
// ***********************************************************************************
// Add dialer campaign phone numbers. Reference: https://developer.aircall.io/api-references/#add-phone-numbers
func (service *DialerCampaignsService) AddNumbers(userId int, phoneNumbers *CreateUpdateDialerCampaign) (*Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign/phone_numbers", userId)
return service.client.Post(_url, phoneNumbers, nil)
}
// ***********************************************************************************
// DELETE DIALER CAMPAIGN PHONE NUMBER
// https://developer.aircall.io/api-references/#delete-a-phone-number
// ***********************************************************************************
// Delete dialer campaign phone number. Reference: https://developer.aircall.io/api-references/#delete-a-phone-number
func (service *DialerCampaignsService) DeleteNumber(userId int, phoneNumberId int) (*Response, error) {
_url := fmt.Sprintf("users/%d/dialer_campaign/phone_numbers/%d", userId, phoneNumberId)
return service.client.Delete(_url)
}