Sha256: c07ed3bbf8ad015c510a68dc973e3e2f1544d831641b23e9803abb61897919c2

Contents?: true

Size: 682 Bytes

Versions: 2

Compression:

Stored size: 682 Bytes

Contents

module SmsBroker
  class StatusRequester
    attr_reader :client,
                :errors

    def initialize(client)
      @client = client
    end

    def status(message_id)
      @message_id = message_id

      self
    end

    def request
      unless valid?
        return Client::Response::Error.new(client.name, errors, errors)
      end

      client.message_status(build_request)
    end

    def valid?
      schema = { message_id: Compel.string.required }

      result = Compel.hash.keys(schema).validate(build_request)

      @errors = result.errors

      result.valid?
    end

    private

    def build_request
      { message_id: @message_id }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sms_broker-1.0.8 lib/sms_broker/status_requester.rb
sms_broker-1.0.7 lib/sms_broker/status_requester.rb