54 lines
1.4 KiB
Ruby
54 lines
1.4 KiB
Ruby
module JamRuby
|
|
class Jamblaster < ApplicationRecord
|
|
|
|
attr_accessible :user_id, :serial_no, :client_id, :user_ids, as: :admin
|
|
|
|
|
|
belongs_to :user, class_name: 'JamRuby::User'
|
|
has_many :jamblasters_users, class_name: "JamRuby::JamblasterUser"
|
|
has_many :users, class_name: 'JamRuby::User', through: :jamblasters_users
|
|
has_many :jamblaster_pairing_requests, class_name: "JamRuby::JamblasterPairingRequest", foreign_key: :jamblaster_id
|
|
belongs_to :connection, class_name: "JamRuby::Connection", foreign_key: "client_id"
|
|
|
|
validates :serial_no, uniqueness: true
|
|
validates :client_id, uniqueness: true
|
|
|
|
before_save :sanitize_active_admin
|
|
|
|
def sanitize_active_admin
|
|
self.client_id = nil if self.client_id == ''
|
|
self.serial_no = nil if self.serial_no == ''
|
|
end
|
|
|
|
def most_recent_pairing
|
|
jamblaster_pairing_requests.where(active: true).first
|
|
end
|
|
|
|
def self.bootstrap(serialno)
|
|
jb = Jamblaster.find_by_serial_no(serialno)
|
|
if jb
|
|
return jb
|
|
end
|
|
|
|
jb = Jamblaster.new
|
|
jb.serial_no = serialno
|
|
jb.save
|
|
jb
|
|
end
|
|
|
|
class << self
|
|
|
|
@@mq_router = MQRouter.new
|
|
@@message_factory = MessageFactory.new
|
|
|
|
def send_pair_attempt(jbid, scid, vtoken)
|
|
msg = @@message_factory.pair_attempt(
|
|
jbid, scid, vtoken
|
|
)
|
|
|
|
@@mq_router.publish_to_client(jbid, msg, {:client_id => scid})
|
|
end
|
|
end
|
|
end
|
|
end
|