Class: OneApi::SmsClient

Inherits:
OneApiClient show all
Defined in:
lib/oneapi-ruby/client.rb

Instance Attribute Summary

Attributes inherited from OneApiClient

#raise_exceptions

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from OneApiClient

#convert_from_json, #execute_GET, #execute_POST, #execute_request, #fill_oneapi_authentication, #get_or_create_client_correlator, #get_rest_url, #is_success, #login, #prepare_headers, #urlencode

Constructor Details

#initialize(username, password, base_url = nil) ⇒ SmsClient

Returns a new instance of SmsClient.



165
166
167
# File 'lib/oneapi-ruby/client.rb', line 165

def initialize(username, password, base_url=nil)
    super(username, password, base_url)
end

Class Method Details

.unserialize_delivery_status(http_body) ⇒ Object

To be used when http push with a delivery notification comes.



237
238
239
240
# File 'lib/oneapi-ruby/client.rb', line 237

def self.unserialize_delivery_status(http_body)
    json = JSONUtils.get_json(http_body)
    return Conversions::from_json(DeliveryInfoNotification, json, false)
end

.unserialize_inbound_messages(http_body) ⇒ Object



244
245
246
247
# File 'lib/oneapi-ruby/client.rb', line 244

def self.unserialize_inbound_messages(http_body)
    json = JSONUtils.get_json(http_body)
    return Conversions::from_json(InboundSmsMessages, json, false)
end

Instance Method Details

#query_delivery_status(client_correlator_or_resource_reference) ⇒ Object



198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/oneapi-ruby/client.rb', line 198

def query_delivery_status(client_correlator_or_resource_reference)
    if defined? client_correlator_or_resource_reference.client_correlator
        client_correlator = client_correlator_or_resource_reference.client_correlator
    else
        client_correlator = client_correlator_or_resource_reference
    end

    client_correlator = get_or_create_client_correlator(client_correlator)

    params = {
        'clientCorrelator' => client_correlator,
    }

    is_success, result = execute_GET(
            "/1/smsmessaging/outbound/TODO/requests/#{client_correlator}/deliveryInfos",
            params
    )

    return convert_from_json(DeliveryInfoList, result, !is_success)
end

#retrieve_inbound_messages(max_number = nil) ⇒ Object



219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
# File 'lib/oneapi-ruby/client.rb', line 219

def retrieve_inbound_messages(max_number=nil)
    if Utils.empty(max_number)
        max_number = 100
    end

    params = {
            'maxBatchSize' => max_number
    }

    is_success, result = execute_GET(
            '/1/smsmessaging/inbound/registrations/INBOUND/messages', 
            params
    )

    return convert_from_json(InboundSmsMessages, result, ! is_success)
end

#send_sms(sms) ⇒ Object



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/oneapi-ruby/client.rb', line 169

def send_sms(sms)
    client_correlator = sms.client_correlator
    if not client_correlator
        client_correlator = Utils.get_random_alphanumeric_string()
    end

    params = {
        'senderAddress' => sms.sender_address,
        'address' => sms.address,
        'message' => sms.message,
        'clientCorrelator' => client_correlator,
        'senderName' => "tel:#{sms.sender_address}"
    }

    if sms.notify_url
        params['notifyURL'] = sms.notify_url
    end
    if sms.callback_data
        params['callbackData'] = sms.callback_data
    end

    is_success, result = execute_POST(
            "/1/smsmessaging/outbound/#{sms.sender_address}/requests",
            params
    )

    convert_from_json(ResourceReference, result, !is_success)
end