lib/mock/twilio/schemas/api_2010.rb in mock-twilio-0.1.0 vs lib/mock/twilio/schemas/api_2010.rb in mock-twilio-0.2.0

- old
+ new

@@ -17,26 +17,38 @@ "num_pages", "start", "uri" ].freeze - def decorate(body) + def decorate(body, request) body["date_updated"] = Time.current.rfc2822 if body["date_updated"] body["date_sent"] = Time.current.rfc2822 if body["date_sent"] body["date_created"] = Time.current.rfc2822 if body["date_created"] body["start_time"] = Time.current.rfc2822 if body["start_time"] body["end_time"] = Time.current.rfc2822 if body["end_time"] + message_sid(body, request) if body["sid"] pagination(body) if body["available_phone_numbers"] + body end def pagination(body) # Params returned in mock_server but not on real twilio request for the moment. # Not needed for us now. PAGES_KEYS.each do |key| body.delete(key) if body[key] end + end + + def message_sid(body, request) + prefix = request.data["MediaUrl"] ? "MM" : "SM" + sid = prefix + SecureRandom.hex(16) + scheduler = Rufus::Scheduler.new + scheduler.in '2s' do + Mock::Twilio::Webhooks::Messages.trigger(sid) + end + body["sid"] = sid end end end end end