VRFS-3389 changed results schema

This commit is contained in:
Jonathan Kolyer 2015-08-02 15:38:32 +00:00
parent dd420527c0
commit 3c16949615
2 changed files with 13 additions and 10 deletions

View File

@ -8,6 +8,7 @@ module JamRuby
KEY_RESULT_TYPES = 'result_types'
KEY_SONGS = 'songs'
KEY_ARTISTS = 'artists'
KEY_RESULTS = 'results'
def self.json_schema
return @@jschema if @@jschema
@ -19,12 +20,14 @@ module JamRuby
KEY_SONGS => {
'page_num' => 0,
'page_count' => 0,
'results' => []
},
KEY_ARTISTS => {
'page_num' => 0,
'page_count' => 0,
'results' => []
},
KEY_RESULTS => {
KEY_SONGS => [],
KEY_ARTISTS => [],
}
}
end
@ -79,8 +82,8 @@ module JamRuby
filter[KEY_SONGS] = {
'page_num' => pgnum,
'page_count' => rel.total_pages,
'results' => results
}
filter[KEY_RESULTS][KEY_SONGS] = results
end
if has_artists
@ -101,8 +104,8 @@ module JamRuby
filter[KEY_ARTISTS] = {
'page_num' => pgnum,
'page_count' => rel.total_pages,
'results' => results
}
filter[KEY_RESULTS][KEY_ARTISTS] = results
end
filter

View File

@ -32,7 +32,7 @@ describe 'JamTrack Search Model' do
filter = artist_filter.clone
filter[JamTrackSearch::KEY_SEARCH_STR] = freebird.original_artist
filter = JamTrackSearch.new.search_results_page(filter)
expect(filter[JamTrackSearch::KEY_ARTISTS]['results'].count).to be(1)
expect(filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_ARTISTS].count).to be(1)
end
it "paginates by artist" do
@ -44,20 +44,20 @@ describe 'JamTrack Search Model' do
filter = artist_filter.clone
filter[JamTrackSearch::KEY_SEARCH_STR] = freebird.original_artist
out_filter = JamTrackSearch.new.search_results_page(filter.clone)
expect(out_filter[JamTrackSearch::KEY_ARTISTS]['results'].count).to be([JamTrackSearch::ARTISTS_PER_PAGE, JamTrack.count].min)
expect(out_filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_ARTISTS].count).to be([JamTrackSearch::ARTISTS_PER_PAGE, JamTrack.count].min)
num_page = (JamTrack.count / JamTrackSearch::ARTISTS_PER_PAGE) + 1
expect(out_filter[JamTrackSearch::KEY_ARTISTS]['page_count']).to be(num_page)
filter[JamTrackSearch::KEY_ARTISTS]['page_num'] = 2
out_filter = JamTrackSearch.new.search_results_page(filter.clone)
expect(out_filter[JamTrackSearch::KEY_ARTISTS]['results'].count).to be(1)
expect(out_filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_ARTISTS].count).to be(1)
end
it "finds by song" do
filter = song_filter.clone
filter[JamTrackSearch::KEY_SEARCH_STR] = freebird.name
filter = JamTrackSearch.new.search_results_page(filter.clone)
expect(filter[JamTrackSearch::KEY_SONGS]['results'].count).to be(1)
expect(filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_SONGS].count).to be(1)
end
it "paginates by song" do
@ -69,7 +69,7 @@ describe 'JamTrack Search Model' do
filter = song_filter.clone
filter[JamTrackSearch::KEY_SEARCH_STR] = 'abc'
out_filter = JamTrackSearch.new.search_results_page(filter.clone)
expect(out_filter[JamTrackSearch::KEY_SONGS]['results'].count).to be([JamTrackSearch::SONGS_PER_PAGE, JamTrack.count].min)
expect(out_filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_SONGS].count).to be([JamTrackSearch::SONGS_PER_PAGE, JamTrack.count].min)
total_count = JamTrack.where("name LIKE 'abc%'").count
num_page = (total_count / JamTrackSearch::SONGS_PER_PAGE) + (0==(total_count % JamTrackSearch::SONGS_PER_PAGE) ? 0 : 1)
@ -77,7 +77,7 @@ describe 'JamTrack Search Model' do
filter[JamTrackSearch::KEY_SONGS]['page_num'] = 2
out_filter = JamTrackSearch.new.search_results_page(filter.clone)
expect(out_filter[JamTrackSearch::KEY_SONGS]['results'].count).to be(2)
expect(out_filter[JamTrackSearch::KEY_RESULTS][JamTrackSearch::KEY_SONGS].count).to be(2)
end
end