Sha256: c5c62b203519c515e51986f7567eaa5f23c72217db30fc130b15654c8d7aa016
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
require 'sms_broker/message_sender' require 'sms_broker/voice_message_sender' require 'sms_broker/client/base' require 'sms_broker/client/nexmo' require 'sms_broker/client/twilio' require 'sms_broker/exceptions/invalid_service' require 'sms_broker/exceptions/not_implemented' module SmsBroker CLIENTS = { nexmo: Client::Nexmo, twilio: Client::Twilio }.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 end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sms_broker-1.0.5 | lib/sms_broker/service.rb |
sms_broker-1.0.4 | lib/sms_broker/service.rb |
sms_broker-1.0.3 | lib/sms_broker/service.rb |