diff --git a/db/up/ars_ids.sql b/db/up/ars_ids.sql new file mode 100644 index 000000000..370abee7d --- /dev/null +++ b/db/up/ars_ids.sql @@ -0,0 +1,16 @@ +create sequence connections_client_id_int_seq; +alter table connections add column client_id_int int not null default nextval('connections_client_id_int_seq'); +--ALTER SEQUENCE connections_client_id_int_seq OWNED BY connections.id; + +create sequence music_sessions_id_int_seq; +alter table connections add column id_int int not null default nextval('music_sessions_id_int_seq'); + +CREATE TABLE arses ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + name VARCHAR(20) NOT NULL, + id_int SMALLINT, + public_ip VARCHAR(200), + active BOOLEAN DEFAULT TRUE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); \ No newline at end of file diff --git a/db/up/find_sessions_2020.sql b/db/up/find_sessions_2020.sql index 5a0361e5b..a72713f08 100644 --- a/db/up/find_sessions_2020.sql +++ b/db/up/find_sessions_2020.sql @@ -1,7 +1,7 @@ ALTER TABLE rsvp_requests ADD COLUMN music_session_id VARCHAR(64) REFERENCES music_sessions(id); ALTER TABLE rsvp_requests ADD COLUMN chosen boolean DEFAULT FALSE NOT NULL; ---UPDATE rsvp_requests set CHOSEN = TRUE, music_session_id = b.music_session_id FROM (SELECT music_sessions.id as music_session_id, rsvp_requests.id as rsvp_request_id FROM music_sessions JOIN rsvp_slots ON music_sessions.id = rsvp_slots.music_session_id JOIN rsvp_requests_rsvp_slots ON rsvp_requests_rsvp_slots.rsvp_slot_id = rsvp_slots.id JOIN rsvp_requests ON rsvp_requests.id = rsvp_requests_rsvp_slots.rsvp_request_id WHERE rsvp_requests_rsvp_slots.chosen = TRUE ) b WHERE rsvp_requests.id = rsvp_request_id; +--UPDATE rsvp_requests set CHOSEN = TRUE, music_session_id = b.music_session_id FROM (SELECT music_sessions.id as music_session_id, rsvp_requests.id as rsvp_request_id FROM music_sessions JOIN rsvp_slots ON music_sessions.id = rsvp_slots.music_session_id JOIN rsvp_requests_rsvp_slots ON rsvp_requests_rsvp_slots.rsvp_slot_id = rsvp_slots.id JOIN rsvp_requests ON rsvp_requests.id = rsvp_requests_rsvp_slots.rsvp_request_id WHERE rsvp_requests_rsvp_slots.chosen = TRUE where music_sessions.created_at > '2020-01-01') b WHERE rsvp_requests.id = rsvp_request_id; ALTER TABLE music_sessions ADD COLUMN friends_can_join boolean DEFAULT FALSE NOT NULL; CREATE INDEX rsvp_request_music_session_id ON rsvp_requests USING btree (music_session_id); \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/ars.rb b/ruby/lib/jam_ruby/models/ars.rb new file mode 100644 index 000000000..a2ca7cb4d --- /dev/null +++ b/ruby/lib/jam_ruby/models/ars.rb @@ -0,0 +1,33 @@ + +module JamRuby + class Ars < ActiveRecord::Base + + @@log = Logging.logger[Ars] + + 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::MusicSession' + + 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