Class: SurgeAPI::Resources::Messages
- Inherits:
-
Object
- Object
- SurgeAPI::Resources::Messages
- Defined in:
- lib/surge_api/resources/messages.rb,
sig/surge_api/resources/messages.rbs
Instance Method Summary collapse
-
#create(account_id, message_params:, request_options: {}) ⇒ SurgeAPI::Models::Message
Some parameter documentations has been truncated, see Models::MessageCreateParams for more details.
-
#initialize(client:) ⇒ Messages
constructor
private
A new instance of Messages.
-
#list(account_id, after: nil, before: nil, request_options: {}) ⇒ SurgeAPI::Internal::Cursor<SurgeAPI::Models::Message>
Some parameter documentations has been truncated, see Models::MessageListParams for more details.
-
#retrieve(id, request_options: {}) ⇒ SurgeAPI::Models::Message
Retrieves a Message object.
Constructor Details
#initialize(client:) ⇒ Messages
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Messages.
115 116 117 |
# File 'lib/surge_api/resources/messages.rb', line 115 def initialize(client:) @client = client end |
Instance Method Details
#create(account_id, message_params:, request_options: {}) ⇒ SurgeAPI::Models::Message
Some parameter documentations has been truncated, see Models::MessageCreateParams for more details.
Creates and enqueues a new message to be sent.
Messages are always sent asynchronously. When you hit this endpoint, the message
will be created within Surge's system and enqueued for sending, and then the id
for the new message will be returned. When the message is actually sent, a
message.sent webhook event will be triggered and sent to any webhook endpoints
that you have subscribed to this event type. Then a message.delivered webhook
event will be triggered when the carrier sends us a delivery receipt.
By default all messages will be sent immediately. If you would like to schedule
sending for some time up to 60 days in the future, you can do that by providing
a value for the send_at field. This should be formatted as an ISO8601 datetime
like 2028-10-14T18:06:00Z.
You must include either a body or attachments field (or both) in the request
body. The body field should contain the text of the message you want to send,
and the attachments field should be an array of objects with a url field
pointing to the file you want to attach. Surge will download these files and
send them as attachments in the message.
You can provide either a conversation object or a to field to specify the
intended recipient of the message, but an error will be returned if both fields
are provided. Similarly the from field cannot be used together with the
conversation field, and conversation.phone_number should be specified
instead.
Optionally, you can pass a settings object to override account-level settings
for this message. Currently the only supported setting is link_shortening,
which accepts "enabled" or "disabled".
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/surge_api/resources/messages.rb', line 50 def create(account_id, params) parsed, = SurgeAPI::MessageCreateParams.dump_request(params) @client.request( method: :post, path: ["accounts/%1$s/messages", account_id], body: parsed[:message_params], model: SurgeAPI::Message, options: ) end |
#list(account_id, after: nil, before: nil, request_options: {}) ⇒ SurgeAPI::Internal::Cursor<SurgeAPI::Models::Message>
Some parameter documentations has been truncated, see Models::MessageListParams for more details.
List all messages for an account with cursor-based pagination.
99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/surge_api/resources/messages.rb', line 99 def list(account_id, params = {}) parsed, = SurgeAPI::MessageListParams.dump_request(params) query = SurgeAPI::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["accounts/%1$s/messages", account_id], query: query, page: SurgeAPI::Internal::Cursor, model: SurgeAPI::Message, options: ) end |
#retrieve(id, request_options: {}) ⇒ SurgeAPI::Models::Message
Retrieves a Message object.
72 73 74 75 76 77 78 79 |
# File 'lib/surge_api/resources/messages.rb', line 72 def retrieve(id, params = {}) @client.request( method: :get, path: ["messages/%1$s", id], model: SurgeAPI::Message, options: params[:request_options] ) end |