require 'phony' require 'action_texter/request' require 'action_texter/validator/message' module ActionTexter class Message attr_accessor :from, :to, :body, :reference def initialize(attributes = {}) @from = attributes[:from] @to = attributes[:to] @body = attributes[:body] @reference = attributes[:reference] end def request Request.new(to_json) end def deliver request.perform if valid? end def deliver! deliver if valid? end def valid? ActionTexter::Validator::Message.new self end def to_json JSON.generate(recipients: to, originator: from, body: body) end end end