Added filters to summons and characters
This commit is contained in:
parent
14260e4ce0
commit
0584ac84e5
1 changed files with 52 additions and 27 deletions
|
|
@ -1,54 +1,79 @@
|
||||||
class Api::V1::SearchController < Api::V1::ApiController
|
class Api::V1::SearchController < Api::V1::ApiController
|
||||||
def characters
|
def characters
|
||||||
|
filters = search_params[:filters]
|
||||||
locale = search_params[:locale] || 'en'
|
locale = search_params[:locale] || 'en'
|
||||||
|
conditions = {}
|
||||||
|
|
||||||
if search_params[:query].present?
|
if filters
|
||||||
|
conditions[:rarity] = filters['rarity'] unless filters['rarity'].blank? || filters['rarity'].empty?
|
||||||
|
conditions[:element] = filters['element'] unless filters['element'].blank? || filters['element'].empty?
|
||||||
|
conditions[:proficiency1] = filters['proficiency1'] unless filters['proficiency1'].blank? || filters['proficiency1'].empty?
|
||||||
|
conditions[:proficiency2] = filters['proficiency2'] unless filters['proficiency2'].blank? || filters['proficiency2'].empty?
|
||||||
|
# conditions[:series] = filters['series'] unless filters['series'].blank? || filters['series'].empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
if search_params[:query].present? && search_params[:query].length >= 2
|
||||||
if locale == 'ja'
|
if locale == 'ja'
|
||||||
@characters = Character.jp_search(search_params[:query]).limit(10)
|
@characters = Character.jp_search(search_params[:query]).where(conditions)
|
||||||
else
|
else
|
||||||
# @characters = Character.where("name_en ILIKE ? AND name_en NOT ILIKE ALL(ARRAY[?])", "%#{params[:query]}%", excludes).limit(10)
|
@characters = Character.en_search(search_params[:query]).where(conditions)
|
||||||
@characters = Character.en_search(search_params[:query]).limit(10)
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@characters = Character.all
|
@characters = Character.where(conditions)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@count = @characters.length
|
||||||
|
@characters = @characters.paginate(page: search_params[:page], per_page: 10)
|
||||||
end
|
end
|
||||||
|
|
||||||
def weapons
|
def weapons
|
||||||
filters = search_params[:filters]
|
filters = search_params[:filters]
|
||||||
locale = search_params[:locale] || 'en'
|
locale = search_params[:locale] || 'en'
|
||||||
|
|
||||||
conditions = {}
|
conditions = {}
|
||||||
conditions[:rarity] = filters['rarity'] unless filters['rarity'].blank? || filters['rarity'].empty?
|
|
||||||
conditions[:element] = filters['element'] unless filters['element'].blank? || filters['element'].empty?
|
|
||||||
conditions[:proficiency] = filters['proficiency'] unless filters['proficiency'].blank? || filters['proficiency'].empty?
|
|
||||||
conditions[:series] = filters['series'] unless filters['series'].blank? || filters['series'].empty?
|
|
||||||
|
|
||||||
ap conditions
|
if filters
|
||||||
|
conditions[:rarity] = filters['rarity'] unless filters['rarity'].blank? || filters['rarity'].empty?
|
||||||
|
conditions[:element] = filters['element'] unless filters['element'].blank? || filters['element'].empty?
|
||||||
|
conditions[:proficiency] = filters['proficiency1'] unless filters['proficiency1'].blank? || filters['proficiency1'].empty?
|
||||||
|
conditions[:series] = filters['series'] unless filters['series'].blank? || filters['series'].empty?
|
||||||
|
end
|
||||||
|
|
||||||
if search_params[:query].present?
|
if search_params[:query].present? && search_params[:query].length >= 2
|
||||||
if locale == 'ja'
|
if locale == 'ja'
|
||||||
@weapons = Weapon.jp_search(search_params[:query]).where(conditions).limit(10)
|
@weapons = Weapon.jp_search(search_params[:query]).where(conditions)
|
||||||
else
|
else
|
||||||
@weapons = Weapon.en_search(search_params[:query]).where(conditions).limit(10)
|
@weapons = Weapon.en_search(search_params[:query]).where(conditions)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@weapons = Weapon.where(conditions).limit(10) # Temporary limit before pagination
|
@weapons = Weapon.where(conditions)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@count = @weapons.length
|
||||||
|
@weapons = @weapons.paginate(page: search_params[:page], per_page: 10)
|
||||||
end
|
end
|
||||||
|
|
||||||
def summons
|
def summons
|
||||||
|
filters = search_params[:filters]
|
||||||
locale = search_params[:locale] || 'en'
|
locale = search_params[:locale] || 'en'
|
||||||
|
conditions = {}
|
||||||
|
|
||||||
if search_params[:query].present?
|
if filters
|
||||||
|
conditions[:rarity] = filters['rarity'] unless filters['rarity'].blank? || filters['rarity'].empty?
|
||||||
|
conditions[:element] = filters['element'] unless filters['element'].blank? || filters['element'].empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
if search_params[:query].present? && search_params[:query].length >= 2
|
||||||
if locale == 'ja'
|
if locale == 'ja'
|
||||||
@summons = Summon.jp_search(search_params[:query]).limit(10)
|
@summons = Summon.jp_search(search_params[:query]).where(conditions)
|
||||||
else
|
else
|
||||||
@summons = Summon.en_search(search_params[:query]).limit(10)
|
@summons = Summon.en_search(search_params[:query]).where(conditions)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@summons = Summon.all
|
@summons = Summon.where(conditions)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@count = @summons.length
|
||||||
|
@summons = @summons.paginate(page: search_params[:page], per_page: 10)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue