Add more contacts API endpoints
This commit is contained in:
parent
67d7c932fe
commit
1978c7ced0
|
@ -26,26 +26,91 @@ type ContactEmail struct {
|
||||||
|
|
||||||
type ContactDataType int
|
type ContactDataType int
|
||||||
|
|
||||||
|
const (
|
||||||
|
ContactDataEncrypted ContactDataType = 1
|
||||||
|
)
|
||||||
|
|
||||||
type ContactData struct {
|
type ContactData struct {
|
||||||
Type ContactDataType
|
Type ContactDataType
|
||||||
Data string
|
Data string
|
||||||
}
|
}
|
||||||
|
|
||||||
type contactsResp struct {
|
func (c *Client) ListContacts() ([]*Contact, error) {
|
||||||
resp
|
|
||||||
Contacts []*Contact
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Client) Contacts() ([]*Contact, error) {
|
|
||||||
req, err := c.newRequest(http.MethodGet, "/contacts", nil)
|
req, err := c.newRequest(http.MethodGet, "/contacts", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var respData contactsResp
|
var respData struct {
|
||||||
|
resp
|
||||||
|
Contacts []*Contact
|
||||||
|
}
|
||||||
if err := c.doJSON(req, &respData); err != nil {
|
if err := c.doJSON(req, &respData); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return respData.Contacts, nil
|
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 != "" {
|
if c.uid != "" && c.accessToken != "" {
|
||||||
req.Header.Set("X-Pm-Uid", c.uid)
|
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
|
return req, nil
|
||||||
|
|
Loading…
Reference in New Issue