34 lines
990 B
Ruby
34 lines
990 B
Ruby
|
|
module JamRuby
|
|
class Broadcast < ActiveRecord::Base
|
|
|
|
@@log = Logging.logger[Broadcast]
|
|
|
|
STATUS_COMPLETED = 'complete'
|
|
STATUS_ABANDONED = 'abandoned'
|
|
STATUS_REVOKED = 'revoked'
|
|
STATUS_DELETED = 'deleted'
|
|
|
|
DONE_STATUSES = [STATUS_ABANDONED, STATUS_REVOKED, STATUS_DELETED, STATUS_COMPLETED]
|
|
belongs_to :music_session, :class_name => 'JamRuby::MusicSsession'
|
|
|
|
def self.current_broadcast(music_session)
|
|
Broadcast.where(music_session_id: music_session.id).where('broadcast_status not in (?)', Broadcast::DONE_STATUSES).first
|
|
end
|
|
|
|
def self.unlink_broadcast(music_session)
|
|
broadcast = current_broadcast(music_session)
|
|
if broadcast
|
|
broadcast.broadcast_status = STATUS_DELETED
|
|
broadcast.save
|
|
end
|
|
end
|
|
|
|
# data should be JSON hash from google API
|
|
def update_broadcast_data(data)
|
|
self.broadcast_status = data["status"]["lifeCycleStatus"]
|
|
self.broadcast_data = data.to_json
|
|
end
|
|
end
|
|
end
|