class Clickatell::Catcher::Rack::MessageAdder

Public Class Methods

new(messages) click to toggle source
# File lib/clickatell/catcher/rack/message_adder.rb, line 7
def initialize(messages)
  @messages = messages
  @message_id = 1
end

Public Instance Methods

add(request_body) click to toggle source
# File lib/clickatell/catcher/rack/message_adder.rb, line 12
def add(request_body)
  message = MultiJson.load(request_body)
  @messages << message.merge('added_at' => Time.now)
  response = { 'data' => { 'message' => build_messages_response(message) } }
  @json_body = MultiJson.dump(response)
end
rack_response() click to toggle source
# File lib/clickatell/catcher/rack/message_adder.rb, line 19
def rack_response
  [200, { 'Content-Type' => 'application/json' }, [@json_body]]
end

Private Instance Methods

build_messages_response(message) click to toggle source
# File lib/clickatell/catcher/rack/message_adder.rb, line 25
def build_messages_response(message)
  start_index = @message_id
  @message_id += message['to'].size
  message['to'].map.with_index(start_index) do |to, i|
    { 'accepted' => true, 'to' => to, 'apiMessageId' => i.to_s }
  end
end