Documentation ¶
Index ¶
- type ApiResponse
- type Client
- type Heartbeat
- type HeartbeatIndexParams
- type HeartbeatService
- type HeartbeatsResponse
- type Message
- type MessageIndexParams
- type MessageResponse
- type MessageSendParams
- type MessageService
- type MessageThread
- type MessageThreadIndexParams
- type MessageThreadService
- type MessageThreadsResponse
- type MessagesResponse
- type Option
- type Response
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ApiResponse ¶ added in v0.0.2
type Client ¶
type Client struct { MessageThreads *MessageThreadService Heartbeats *HeartbeatService Messages *MessageService // contains filtered or unexported fields }
Client is the campay API client. Do not instantiate this client with Client{}. Use the New method instead.
type Heartbeat ¶ added in v0.0.2
type Heartbeat struct { ID uuid.UUID `json:"id" example:"32343a19-da5e-4b1b-a767-3298a73703cb"` Owner string `json:"owner" gorm:"index:idx_heartbeats_owner_timestamp" example:"+18005550199"` UserID string `json:"user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"` Timestamp time.Time `json:"timestamp" example:"2022-06-05T14:26:01.520828+03:00"` }
Heartbeat represents is a pulse from an active phone
type HeartbeatIndexParams ¶ added in v0.0.2
type HeartbeatIndexParams struct { Skip int `json:"skip"` Owner string `json:"owner"` Query *string `json:"query"` Limit int `json:"limit"` }
HeartbeatIndexParams is the payload for fetching entities.Heartbeat of a phone number
type HeartbeatService ¶ added in v0.0.2
type HeartbeatService service
HeartbeatService is the API client for the `/heartbeats` endpoint
func (*HeartbeatService) Index ¶ added in v0.0.2
func (service *HeartbeatService) Index(ctx context.Context, params *HeartbeatIndexParams) (*HeartbeatsResponse, *Response, error)
Index returns a list of heartbeats from an android phone. It will be sorted by timestamp in descending order.
API Docs: https://api.httpsms.com/index.html#/Heartbeats/get_heartbeats
type HeartbeatsResponse ¶ added in v0.0.2
type HeartbeatsResponse ApiResponse[[]Heartbeat]
HeartbeatsResponse is the response gotten with a message content
type Message ¶
type Message struct { ID uuid.UUID `json:"id" example:"32343a19-da5e-4b1b-a767-3298a73703cb"` RequestID *string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4"` Owner string `json:"owner" example:"+18005550199"` UserID string `json:"user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"` Contact string `json:"contact" example:"+18005550100"` Content string `json:"content" example:"This is a sample text message"` Type string `json:"type" example:"mobile-terminated"` Status string `json:"status" example:"pending"` // SIM is the SIM card to use to send the message // * SMS1: use the SIM card in slot 1 // * SMS2: use the SIM card in slot 2 SIM string `json:"sim" example:"SIM1"` // SendDuration is the number of nanoseconds from when the request was received until when the mobile phone send the message SendDuration *int64 `json:"send_time" example:"133414"` RequestReceivedAt time.Time `json:"request_received_at" example:"2022-06-05T14:26:01.520828+03:00"` CreatedAt time.Time `json:"created_at" example:"2022-06-05T14:26:02.302718+03:00"` UpdatedAt time.Time `json:"updated_at" example:"2022-06-05T14:26:10.303278+03:00"` OrderTimestamp time.Time `json:"order_timestamp" gorm:"index:idx_messages_order_timestamp" example:"2022-06-05T14:26:09.527976+03:00"` LastAttemptedAt *time.Time `json:"last_attempted_at" example:"2022-06-05T14:26:09.527976+03:00"` NotificationScheduledAt *time.Time `json:"scheduled_at" example:"2022-06-05T14:26:09.527976+03:00"` SentAt *time.Time `json:"sent_at" example:"2022-06-05T14:26:09.527976+03:00"` DeliveredAt *time.Time `json:"delivered_at" example:"2022-06-05T14:26:09.527976+03:00"` ExpiredAt *time.Time `json:"expired_at" example:"2022-06-05T14:26:09.527976+03:00"` FailedAt *time.Time `json:"failed_at" example:"2022-06-05T14:26:09.527976+03:00"` CanBePolled bool `json:"can_be_polled" example:"false"` SendAttemptCount uint `json:"send_attempt_count" example:"0"` MaxSendAttempts uint `json:"max_send_attempts" example:"1"` ReceivedAt *time.Time `json:"received_at" example:"2022-06-05T14:26:09.527976+03:00"` FailureReason *string `json:"failure_reason" example:"UNKNOWN"` }
Message represents and incoming or outgoing SMS message
type MessageIndexParams ¶ added in v0.0.2
type MessageIndexParams struct { Skip int `json:"skip"` Contact string `json:"contact"` Owner string `json:"owner"` Query *string `json:"query"` Limit int `json:"limit"` }
MessageIndexParams is the payload fetching entities.Message sent between 2 numbers
type MessageResponse ¶
type MessageResponse ApiResponse[Message]
MessageResponse is the response gotten with a message content
type MessageSendParams ¶
type MessageSendParams struct { Content string `json:"content"` From string `json:"from"` RequestID string `json:"request_id,omitempty"` To string `json:"to"` }
MessageSendParams is the request payload for sending a message
type MessageService ¶ added in v0.0.2
type MessageService service
MessageService is the API client for the `/` endpoint
func (*MessageService) Index ¶ added in v0.0.2
func (service *MessageService) Index(ctx context.Context, params *MessageIndexParams) (*MessagesResponse, *Response, error)
Index returns a list of messages which are sent between 2 phone numbers. It will be sorted by timestamp in descending order.
API Docs: https://api.httpsms.com/index.html#/Messages/get_messages
func (*MessageService) Send ¶ added in v0.0.2
func (service *MessageService) Send(ctx context.Context, params *MessageSendParams) (*MessageResponse, *Response, error)
Send adds a new SMS message to be sent by the android phone
API Docs: https://api.httpsms.com/index.html#/Messages/post_messages_send
type MessageThread ¶ added in v0.0.2
type MessageThread struct { ID uuid.UUID `json:"id" example:"32343a19-da5e-4b1b-a767-3298a73703ca"` Owner string `json:"owner" example:"+18005550199"` Contact string `json:"contact" example:"+18005550100"` IsArchived bool `json:"is_archived" example:"false"` UserID string `json:"user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"` Color string `json:"color" example:"indigo"` LastMessageContent string `json:"last_message_content" example:"This is a sample message content"` LastMessageID uuid.UUID `json:"last_message_id" example:"32343a19-da5e-4b1b-a767-3298a73703ca"` CreatedAt time.Time `json:"created_at" example:"2022-06-05T14:26:09.527976+03:00"` UpdatedAt time.Time `json:"updated_at" example:"2022-06-05T14:26:09.527976+03:00"` OrderTimestamp time.Time `json:"order_timestamp" example:"2022-06-05T14:26:09.527976+03:00"` }
MessageThread represents a message thread between 2 phone numbers
type MessageThreadIndexParams ¶ added in v0.0.2
type MessageThreadIndexParams struct { IsArchived bool `json:"is_archived"` Skip int `json:"skip"` Query *string `json:"query"` Limit int `json:"limit"` Owner string `json:"owner"` }
MessageThreadIndexParams is the payload fetching entities.MessageThread sent between 2 numbers
type MessageThreadService ¶ added in v0.0.2
type MessageThreadService service
MessageThreadService is the API client for the `/message-threads` endpoint
func (*MessageThreadService) Index ¶ added in v0.0.2
func (service *MessageThreadService) Index(ctx context.Context, params *MessageThreadIndexParams) (*MessageThreadsResponse, *Response, error)
Index returns a list of contacts which a phone number has communicated with (threads). It will be sorted by timestamp in descending order.
API Docs: https://api.httpsms.com/index.html#/Channel%20Threads/get_message_threads
type MessageThreadsResponse ¶ added in v0.0.2
type MessageThreadsResponse ApiResponse[[]MessageThread]
MessageThreadsResponse is the response gotten with a message content
type MessagesResponse ¶ added in v0.0.2
type MessagesResponse ApiResponse[[]Message]
MessagesResponse is the response with multiple messages
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option is options for constructing a client
func WithAPIKey ¶
WithAPIKey sets the api key for the httpsms API
func WithBaseURL ¶
WithBaseURL sets the base url for the httpsms API
func WithHTTPClient ¶
WithHTTPClient sets the underlying HTTP client used for API requests. By default, http.DefaultClient is used.