VRFS-1676 fixed
This commit is contained in:
parent
1904c8f474
commit
a1f288fe4d
|
|
@ -107,6 +107,15 @@ module JamRuby
|
|||
return query
|
||||
end
|
||||
|
||||
def self.scheduled user
|
||||
current_time = Time.now
|
||||
query = MusicSession.where("music_sessions.user_id = '#{user.id}'")
|
||||
query = query.where("music_sessions.scheduled_start IS NOT NULL AND music_sessions.scheduled_start < '#{current_time + 12.hours}'")
|
||||
query = query.order("music_sessions.scheduled_start ASC")
|
||||
|
||||
return query
|
||||
end
|
||||
|
||||
def self.create user, options
|
||||
band = Band.find(options[:band]) unless options[:band].nil?
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ class ApiMusicSessionsController < ApiController
|
|||
limit: params[:limit])
|
||||
end
|
||||
|
||||
def scheduled
|
||||
@music_sessions = MusicSession.scheduled(current_user)
|
||||
end
|
||||
|
||||
def create
|
||||
@music_session = MusicSession.create(current_user, params)
|
||||
|
||||
|
|
@ -407,7 +411,7 @@ class ApiMusicSessionsController < ApiController
|
|||
end
|
||||
end
|
||||
|
||||
def history_show
|
||||
def show_history
|
||||
@history = MusicSession.find(params[:id])
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
object @music_session
|
||||
|
||||
attributes :id, :name, :description, :musician_access, :approval_required, :fan_access, :fan_chat, :band_id, :language, :timezone, :user_id
|
||||
extends "api_music_sessions/show_history"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
object @music_sessions
|
||||
|
||||
extends "api_music_sessions/show_history"
|
||||
|
|
@ -17,7 +17,7 @@ if !current_user
|
|||
else
|
||||
|
||||
attributes :id, :music_session_id, :description, :musician_access, :approval_required, :fan_access, :fan_chat,
|
||||
:band_id, :user_id, :genre_id, :created_at, :like_count, :comment_count
|
||||
:band_id, :user_id, :genre_id, :created_at, :like_count, :comment_count, :scheduled_start, :scheduled_duration
|
||||
|
||||
node :share_url do |history|
|
||||
unless history.share_token.nil?
|
||||
|
|
@ -148,6 +148,7 @@ SampleApp::Application.routes.draw do
|
|||
match '/sessions/:id/participants' => 'api_music_sessions#participant_create', :via => :post
|
||||
match '/participants/:id' => 'api_music_sessions#participant_show', :via => :get, :as => 'api_session_participant_detail'
|
||||
match '/participants/:id' => 'api_music_sessions#participant_delete', :via => :delete
|
||||
match '/sessions/scheduled' => 'api_music_sessions#scheduled', :via => :get
|
||||
match '/sessions/:id' => 'api_music_sessions#show', :via => :get, :as => 'api_session_detail'
|
||||
match '/sessions/:id' => 'api_music_sessions#update', :via => :put
|
||||
match '/sessions' => 'api_music_sessions#index', :via => :get
|
||||
|
|
@ -157,7 +158,7 @@ SampleApp::Application.routes.draw do
|
|||
match '/sessions/:id/perf' => 'api_music_sessions#perf_upload', :via => :put
|
||||
match '/sessions/:id/comments' => 'api_music_sessions#add_comment', :via => :post
|
||||
match '/sessions/:id/likes' => 'api_music_sessions#add_like', :via => :post
|
||||
match '/sessions/:id/history' => 'api_music_sessions#history_show', :via => :get
|
||||
match '/sessions/:id/history' => 'api_music_sessions#show_history', :via => :get, :as => 'api_session_history_detail'
|
||||
|
||||
# music session tracks
|
||||
match '/sessions/:id/tracks' => 'api_music_sessions#track_create', :via => :post
|
||||
|
|
|
|||
|
|
@ -45,5 +45,25 @@ describe "Scheduled Music Session API ", :type => :api do
|
|||
music_session[:language] = defopts[:language]
|
||||
music_session[:timezone] = defopts[:timezone]
|
||||
end
|
||||
|
||||
it "should list scheduled sessions" do
|
||||
login(user)
|
||||
|
||||
post '/api/sessions.json', defopts.merge({start: Time.now + 3.hours}).to_json, "CONTENT_TYPE" => 'application/json'
|
||||
last_response.status.should eql(201)
|
||||
|
||||
post '/api/sessions.json', defopts.merge({start: Time.now + 7.hours}).to_json, "CONTENT_TYPE" => 'application/json'
|
||||
last_response.status.should eql(201)
|
||||
|
||||
post '/api/sessions.json', defopts.merge({start: Time.now + 15.hours}).to_json, "CONTENT_TYPE" => 'application/json'
|
||||
last_response.status.should eql(201)
|
||||
|
||||
get '/api/sessions/scheduled.json'
|
||||
last_response.status.should eql(200)
|
||||
music_sessions = JSON.parse(last_response.body)
|
||||
|
||||
music_sessions.count.should eql(2)
|
||||
expect(Time.parse(music_sessions[0]["scheduled_start"]).to_i).to be < Time.parse(music_sessions[1]["scheduled_start"]).to_i
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue