VRFS-1676 fixed

This commit is contained in:
Bert Owen 2014-05-22 03:11:50 +08:00
parent 1904c8f474
commit a1f288fe4d
7 changed files with 41 additions and 4 deletions

View File

@ -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?

View File

@ -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

View File

@ -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"

View File

@ -0,0 +1,3 @@
object @music_sessions
extends "api_music_sessions/show_history"

View File

@ -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?

View File

@ -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

View File

@ -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