Add List/Add/Remove project contacts and CLI: contacts list|add|remove|link-git|link-authors. Contacts tab (CRM) is separate from ProjectTeam portal users.
36 lines
1.4 KiB
Go
36 lines
1.4 KiB
Go
package onlyoffice
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/url"
|
|
"strconv"
|
|
)
|
|
|
|
// ListProjectContacts returns CRM persons/companies linked to a project.
|
|
// GET /api/2.0/crm/contact/project/{projectid}
|
|
func (c *Client) ListProjectContacts(ctx context.Context, projectID int) ([]map[string]any, error) {
|
|
return c.ResponseArray(ctx, fmt.Sprintf("/api/2.0/crm/contact/project/%d", projectID))
|
|
}
|
|
|
|
// AddProjectContact links a CRM contact (person or company) to a project.
|
|
// POST /api/2.0/project/{projectid}/contact form: contactId=
|
|
func (c *Client) AddProjectContact(ctx context.Context, projectID, contactID int) (map[string]any, error) {
|
|
fields := url.Values{}
|
|
fields.Set("contactId", strconv.Itoa(contactID))
|
|
return c.postFormObject(ctx, fmt.Sprintf("/api/2.0/project/%d/contact", projectID), fields)
|
|
}
|
|
|
|
// RemoveProjectContact unlinks a CRM contact from a project.
|
|
// DELETE /api/2.0/project/{projectid}/contact?contactId=
|
|
func (c *Client) RemoveProjectContact(ctx context.Context, projectID, contactID int) error {
|
|
_, err := c.deleteReq(ctx, fmt.Sprintf("/api/2.0/project/%d/contact?contactId=%d", projectID, contactID))
|
|
return err
|
|
}
|
|
|
|
// GetProjectTeam returns portal users on the project team.
|
|
// GET /api/2.0/project/{projectid}/team
|
|
func (c *Client) GetProjectTeam(ctx context.Context, projectID int) ([]map[string]any, error) {
|
|
return c.ResponseArray(ctx, fmt.Sprintf("/api/2.0/project/%d/team", projectID))
|
|
}
|