Sha256: 68ae4b7182f1513bc86642322dcd2e860de414de5a2225ab126b4125a46ce9a8
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
require 'sms_broker/message_sender' require 'sms_broker/voice_message_sender' require 'sms_broker/status_requester' require 'sms_broker/client/base' require 'sms_broker/client/nexmo' require 'sms_broker/client/twilio' require 'sms_broker/client/open_market' require 'sms_broker/exceptions/invalid_service' require 'sms_broker/exceptions/not_implemented' module SmsBroker CLIENTS = { nexmo: Client::Nexmo, twilio: Client::Twilio, open_market: Client::OpenMarket }.freeze class Service def self.get(name) options = service_configuration(name) result = Service.validate(name, options) unless result.valid? raise Exceptions::InvalidService, name.to_sym => result.errors end new CLIENTS[name.to_sym].new(options) end def self.service_configuration(name) SmsBroker.configuration[:services_setups][name.to_sym] end def self.validate(name, options) Setup.service_validation_schemas[name.to_sym].validate(options) end attr_reader :client def initialize(client) @client = client end def message(message) MessageSender.new(client).message(message) end def voice_message(message) #could have another params like lang VoiceMessageSender.new(client).message(message) end def status(message_id) StatusRequester.new(client).status(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/service.rb |
sms_broker-1.0.7 | lib/sms_broker/service.rb |