Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContactSvc ¶
type ContactSvc interface {
ListContacts(ctx context.Context, req *ListContactsRequest) (*apiresource.List[apiresource.Actor], *apierror.APIError)
}
ContactSvc backs the messaging directory endpoint via the notification-service ChatService gRPC client.
func NewContactSvc ¶
func NewContactSvc(config *ContactSvcConfig) ContactSvc
type ContactSvcConfig ¶
type ContactSvcConfig struct {
// ChatClient (required) is the notification-service ChatService gRPC client.
ChatClient pb.ChatServiceClient
}
type ListContactsEndpoint ¶
type ListContactsEndpoint struct{}
Lists the people the caller can start a conversation with.
For a member of the account, this is everyone active in that account, including themselves — messaging yourself is allowed. A customer signed in to the portal instead gets one shared "Customer Service" contact rather than the individual staff of the account they are dealing with; messages to it are routed by the account's support routes.
Blocking is not applied to the directory: someone you have blocked, or who has blocked you, is still listed even though a direct message with them cannot be opened.
The directory is returned as a single unpaginated page capped at 100 names, so narrow it with `q` in an account with many people.
func (*ListContactsEndpoint) Materialize ¶
func (e *ListContactsEndpoint) Materialize() *apiendpoint.APIEndpoint[*ListContactsRequest, *apiresource.List[apiresource.Actor]]
type ListContactsRequest ¶
type ListContactsRequest struct {
apiresource.PaginationRequest
}
Request to list the caller's messageable contacts (the messaging directory).
`q` matches contact names as a case-insensitive substring.