Add more contacts API endpoints
This commit is contained in:
parent
67d7c932fe
commit
1978c7ced0
|
@ -26,26 +26,91 @@ type ContactEmail struct {
|
|||
|
||||
type ContactDataType int
|
||||
|
||||
const (
|
||||
ContactDataEncrypted ContactDataType = 1
|
||||
)
|
||||
|
||||
type ContactData struct {
|
||||
Type ContactDataType
|
||||
Data string
|
||||
}
|
||||
|
||||
type contactsResp struct {
|
||||
resp
|
||||
Contacts []*Contact
|
||||
}
|
||||
|
||||
func (c *Client) Contacts() ([]*Contact, error) {
|
||||
func (c *Client) ListContacts() ([]*Contact, error) {
|
||||
req, err := c.newRequest(http.MethodGet, "/contacts", nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var respData contactsResp
|
||||
var respData struct {
|
||||
resp
|
||||
Contacts []*Contact
|
||||
}
|
||||
if err := c.doJSON(req, &respData); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return respData.Contacts, nil
|
||||
}
|
||||
|
||||
func (c *Client) ListContactsEmails() ([]*ContactEmail, error) {
|
||||
req, err := c.newRequest(http.MethodGet, "/contacts/emails", nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var respData struct {
|
||||
resp
|
||||
Contacts []*ContactEmail
|
||||
}
|
||||
if err := c.doJSON(req, &respData); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return respData.Contacts, nil
|
||||
}
|
||||
|
||||
func (c *Client) GetContact(id string) (*Contact, error) {
|
||||
req, err := c.newRequest(http.MethodGet, "/contacts/"+id, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var respData struct {
|
||||
resp
|
||||
Contact *Contact
|
||||
}
|
||||
if err := c.doJSON(req, &respData); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return respData.Contact, nil
|
||||
}
|
||||
|
||||
type CreateContactResp struct {
|
||||
Input *Contact
|
||||
Response struct {
|
||||
resp
|
||||
Contact *Contact
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) CreateContacts(contacts []*Contact) ([]*CreateContactResp, error) {
|
||||
reqData := struct {
|
||||
Contacts []*Contact
|
||||
}{contacts}
|
||||
|
||||
req, err := c.newJSONRequest(http.MethodPost, "/contacts", &reqData)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var respData struct {
|
||||
resp
|
||||
Responses []*CreateContactResp
|
||||
}
|
||||
if err := c.doJSON(req, &respData); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return respData.Responses, nil
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ func (c *Client) newRequest(method, path string, body io.Reader) (*http.Request,
|
|||
|
||||
if c.uid != "" && c.accessToken != "" {
|
||||
req.Header.Set("X-Pm-Uid", c.uid)
|
||||
req.Header.Set("Authorization", "Bearer " + c.accessToken)
|
||||
req.Header.Set("Authorization", "Bearer "+c.accessToken)
|
||||
}
|
||||
|
||||
return req, nil
|
||||
|
|
Loading…
Reference in New Issue