class MessageApi
Public Class Methods
new(configuration)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 41 def initialize(configuration) @_configuration = configuration end
Public Instance Methods
create_request_body(messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 51 def create_request_body(messages) messages_array= Array.new messages_hash = Hash.new if messages.kind_of?(Array) messages.each do |message| if message.kind_of?(Message) messages_array.append(message.get_hash) end end messages_hash[:messages] = messages_array messages_hash.to_json elsif messages.kind_of?(Message) messages_array.append(messages.get_hash) messages_hash[:messages] = messages_array messages_hash.to_json else messages_hash[:messages] = messages_array messages_hash.to_json end end
create_request_body_to_manipualte(messages, folder)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 72 def create_request_body_to_manipualte(messages, folder) message_ids_array= Array.new message_ids_hash = Hash.new if messages.kind_of?(Array) messages.each do |message| if message.kind_of?(Message) message_ids_array.append(message.id) end end message_ids_hash[:folder] = folder message_ids_hash[:message_ids] = message_ids_array message_ids_hash.to_json elsif messages.kind_of?(Message) message_ids_array.append(messages.id) message_ids_hash[:folder] = folder message_ids_hash[:message_ids] = message_ids_array message_ids_hash.to_json else message_ids_hash[:folder] = folder message_ids_hash[:message_ids] = message_ids_array message_ids_hash.to_json end end
create_uri_to_delete_sms(url)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 333 def create_uri_to_delete_sms(url) base_url = url.split('?')[0] '%s?action=deletemsg' % [base_url] end
create_uri_to_mark_sms(url)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 338 def create_uri_to_mark_sms(url) base_url = url.split('?')[0] '%s?action=markmsg' % [base_url] end
create_uri_to_receive_sms(url, folder)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 343 def create_uri_to_receive_sms(url, folder) base_url = url.split('?')[0] '%s?action=receivemsg&folder=%s' % [base_url, folder] end
create_uri_to_send_sms(url)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 328 def create_uri_to_send_sms(url) base_url = url.split('?')[0] '%s?action=sendmsg' % [base_url] end
delete(folder, messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 381 def delete(folder, messages) authorization_header = self.create_authorization_header(@_configuration.username, @_configuration.password) request_body = self.create_request_body_to_manipualte(messages, folder) response = self.do_request_post(self.create_uri_to_delete_sms(@_configuration.apiurl), authorization_header, request_body) result = self.get_response_delete(response, messages) if messages.kind_of?(Message) if result.total_count.eql? 1 and result.failed_count.eql? 0 result = true else result = false end end result end
do_request_get(url, authorization_header)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 360 def do_request_get(url, authorization_header) headers = { 'Authorization' => authorization_header, 'Accept' => 'application/json' } response = Faraday.get(url, nil, headers) response.body end
do_request_post(url, authorization_header, request_body)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 350 def do_request_post(url, authorization_header, request_body) headers = { 'Authorization' => authorization_header, 'Content-Type' => 'application/json', 'Accept' => 'application/json' } response = Faraday.post(url, request_body, headers) response.body end
download_incoming()
click to toggle source
# File lib/ozeki_libs_rest.rb, line 411 def download_incoming() authorization_header = self.create_authorization_header(@_configuration.username, @_configuration.password) response = self.do_request_get(self.create_uri_to_receive_sms(@_configuration.apiurl, Folder.new().inbox), authorization_header) result = self.get_response_receive(response) result end
get_response_delete(response, messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 96 def get_response_delete(response, messages) if messages.kind_of?(Array) json = JSON.parse(response) result = MessageDeleteResult.new(json['data']['folder']) message_ids = json['data']['message_ids'] messages.each do |message| success = false message_ids.each do |id| if id.eql? message.id success = true end end if success result.add_message_id_remove_succeeded(message.id) else result.add_message_id_remove_failed(message.id) end end elsif messages.kind_of?(Message) json = JSON.parse(response) result = MessageDeleteResult.new(json['data']['folder']) message_ids = json['data']['message_ids'] success = false message_ids.each do |id| if messages.id.eql? id success = true end end if success result.add_message_id_remove_succeeded(messages.id) else result.add_message_id_remove_failed(messages.id) end else result = MessageDeleteResult.new('') end result end
get_response_mark(response, messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 135 def get_response_mark(response, messages) if messages.kind_of?(Array) json = JSON.parse(response) result = MessageMarkResult.new(json['data']['folder']) message_ids = json['data']['message_ids'] messages.each do |message| success = false message_ids.each do |id| if id.eql? message.id success = true end end if success result.add_message_id_mark_succeeded(message.id) else result.add_message_id_mark_failed(message.id) end end elsif messages.kind_of?(Message) json = JSON.parse(response) result = MessageMarkResult.new(json['data']['folder']) message_ids = json['data']['message_ids'] success = false message_ids.each do |id| if messages.id.eql? id success = true end end if success result.add_message_id_mark_succeeded(messages.id) else result.add_message_id_mark_failed(messages.id) end else result = MessageMarkResult.new('') end result end
get_response_receive(response)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 255 def get_response_receive(response) json_object = JSON.parse(response) result = MessageReceiveResult.new(json_object['data']['folder'], json_object['data']['limit']) messages = json_object['data']['data'] messages.each do |message| msg = Message.new if message['message_id'] msg.id = message['message_id'] end if message['from_connection'] msg.from_connection = message['from_connection'] end if message['from_address'] msg.from_address = message['from_address'] end if message['from_station'] msg.from_station = message['from_station'] end if message['to_connection'] msg.to_connection = message['to_connection'] end if message['to_address'] msg.to_address = message['to_address'] end if message['to_station'] msg.to_station = message['to_station'] end if message['text'] msg.text = message['text'] end if message['create_date'] msg.create_date = message['create_date'] end if message['valid_until'] msg.valid_until = message['valid_until'] end if message['time_to_send'] msg.time_to_send = message['time_to_send'] end if message['submit_report_requested'] if message['submit_report_requested'].eql? 'true' msg.is_submit_report_requested = true else msg.is_submit_report_requested = false end end if message['delivery_report_requested'] if message['delivery_report_requested'].eql? 'true' msg.is_delivery_report_requested= true else msg.is_delivery_report_requested = false end end if message['view_report_requested'] if message['view_report_requested'].eql? 'true' msg.is_view_report_requested = true else msg.is_view_report_requested = false end end if message['tags'] message['tags'].each do |tag| key = tag['name'] value = tag['value'] msg.add_tag(key, value) end end result.append_message(msg) end self.delete(json_object['data']['folder'], result.messages) result end
get_response_send(response)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 174 def get_response_send(response) json_object = JSON.parse(response) total_count = json_object['data']['total_count'] success_count = json_object['data']['success_count'] failed_count = json_object['data']['failed_count'] messages = json_object['data']['messages'] results_array = Array.new messages.each do |message| msg = Message.new if message['message_id'] msg.id = message['message_id'] end if message['from_connection'] msg.from_connection = message['from_connection'] end if message['from_address'] msg.from_address = message['from_address'] end if message['from_station'] msg.from_station = message['from_station'] end if message['to_connection'] msg.to_connection = message['to_connection'] end if message['to_address'] msg.to_address = message['to_address'] end if message['to_station'] msg.to_station = message['to_station'] end if message['text'] msg.text = message['text'] end if message['create_date'] msg.create_date = message['create_date'] end if message['valid_until'] msg.valid_until = message['valid_until'] end if message['time_to_send'] msg.time_to_send = message['time_to_send'] end if message['submit_report_requested'] if message['submit_report_requested'].eql? 'true' msg.is_submit_report_requested = true else msg.is_submit_report_requested = false end end if message['delivery_report_requested'] if message['delivery_report_requested'].eql? 'true' msg.is_delivery_report_requested= true else msg.is_delivery_report_requested = false end end if message['view_report_requested'] if message['view_report_requested'].eql? 'true' msg.is_view_report_requested = true else msg.is_view_report_requested = false end end if message['tags'] message['tags'].each do |tag| key = tag['name'] value = tag['value'] msg.add_tag(key, value) end end if message['status'].eql? 'SUCCESS' result = MessageSendResult.new(msg, DeliveryStatus.new().success, '') results_array.append(result) else result = MessageSendResult.new(msg, DeliveryStatus.new().failed, message['status']) results_array.append(result) end end MessageSendResults.new(total_count, success_count, failed_count, results_array) end
mark(folder, messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 396 def mark(folder, messages) authorization_header = self.create_authorization_header(@_configuration.username, @_configuration.password) request_body = self.create_request_body_to_manipualte(messages, folder) response = self.do_request_post(self.create_uri_to_mark_sms(@_configuration.apiurl), authorization_header, request_body) result = self.get_response_mark(response, messages) if messages.kind_of?(Message) if result.total_count.eql? 1 and result.failed_count.eql? 0 result = true else result = false end end result end
send(messages)
click to toggle source
# File lib/ozeki_libs_rest.rb, line 369 def send(messages) authorization_header = self.create_authorization_header(@_configuration.username, @_configuration.password) request_body = self.create_request_body(messages) response = self.do_request_post(self.create_uri_to_send_sms(@_configuration.apiurl), authorization_header, request_body) if self.get_response_send(response).total_count.eql? 1 result = self.get_response_send(response).results[0] else result = self.get_response_send(response) end result end