Fix search for base skills
Before they didn't really show up at all, then they showed up on everything, then they showed up on EX1 and EX2, now they only show up on EX2.
This commit is contained in:
parent
fc7cde4c5a
commit
a8301019f5
1 changed files with 116 additions and 110 deletions
|
|
@ -1,133 +1,139 @@
|
|||
class Api::V1::SearchController < Api::V1::ApiController
|
||||
def characters
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
conditions = {}
|
||||
def characters
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
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[: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'
|
||||
@characters = Character.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
@characters = Character.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
@characters = Character.where(conditions)
|
||||
end
|
||||
|
||||
@count = @characters.length
|
||||
@characters = @characters.paginate(page: search_params[:page], per_page: 10)
|
||||
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
|
||||
|
||||
def weapons
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
conditions = {}
|
||||
@characters = if search_params[:query].present? && search_params[:query].length >= 2
|
||||
if locale == 'ja'
|
||||
Character.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
Character.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
Character.where(conditions)
|
||||
end
|
||||
|
||||
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
|
||||
@count = @characters.length
|
||||
@characters = @characters.paginate(page: search_params[:page], per_page: 10)
|
||||
end
|
||||
|
||||
if search_params[:query].present? && search_params[:query].length >= 2
|
||||
if locale == 'ja'
|
||||
@weapons = Weapon.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
@weapons = Weapon.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
@weapons = Weapon.where(conditions)
|
||||
end
|
||||
def weapons
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
conditions = {}
|
||||
|
||||
@count = @weapons.length
|
||||
@weapons = @weapons.paginate(page: search_params[:page], per_page: 10)
|
||||
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
|
||||
|
||||
def summons
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
conditions = {}
|
||||
@weapons = if search_params[:query].present? && search_params[:query].length >= 2
|
||||
if locale == 'ja'
|
||||
Weapon.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
Weapon.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
Weapon.where(conditions)
|
||||
end
|
||||
|
||||
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
|
||||
@count = @weapons.length
|
||||
@weapons = @weapons.paginate(page: search_params[:page], per_page: 10)
|
||||
end
|
||||
|
||||
if search_params[:query].present? && search_params[:query].length >= 2
|
||||
if locale == 'ja'
|
||||
@summons = Summon.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
@summons = Summon.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
@summons = Summon.where(conditions)
|
||||
end
|
||||
def summons
|
||||
filters = search_params[:filters]
|
||||
locale = search_params[:locale] || 'en'
|
||||
conditions = {}
|
||||
|
||||
@count = @summons.length
|
||||
@summons = @summons.paginate(page: search_params[:page], per_page: 10)
|
||||
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
|
||||
|
||||
def job_skills
|
||||
raise Api::V1::NoJobProvidedError unless search_params[:job].present?
|
||||
@summons = if search_params[:query].present? && search_params[:query].length >= 2
|
||||
if locale == 'ja'
|
||||
Summon.jp_search(search_params[:query]).where(conditions)
|
||||
else
|
||||
Summon.en_search(search_params[:query]).where(conditions)
|
||||
end
|
||||
else
|
||||
Summon.where(conditions)
|
||||
end
|
||||
|
||||
# Set up basic parameters we'll use
|
||||
job = Job.find(search_params[:job])
|
||||
locale = search_params[:locale] || 'en'
|
||||
@count = @summons.length
|
||||
@summons = @summons.paginate(page: search_params[:page], per_page: 10)
|
||||
end
|
||||
|
||||
# Set the conditions based on the group requested
|
||||
conditions = {}
|
||||
if search_params[:filters].present? && search_params[:filters]["group"].present?
|
||||
group = search_params[:filters]["group"].to_i
|
||||
def job_skills
|
||||
raise Api::V1::NoJobProvidedError unless search_params[:job].present?
|
||||
|
||||
if (group >= 0 && group < 4)
|
||||
conditions[:color] = group
|
||||
conditions[:emp] = false
|
||||
conditions[:base] = false
|
||||
elsif (group == 4)
|
||||
conditions[:emp] = true
|
||||
elsif (group == 5)
|
||||
conditions[:base] = true
|
||||
end
|
||||
end
|
||||
# Set up basic parameters we'll use
|
||||
job = Job.find(search_params[:job])
|
||||
locale = search_params[:locale] || 'en'
|
||||
|
||||
# Perform the query
|
||||
if search_params[:query].present? && search_params[:query].length >= 2
|
||||
@skills = JobSkill.method("#{locale}_search").(search_params[:query])
|
||||
.where(conditions)
|
||||
.where(job: job.id, main: false)
|
||||
.or(
|
||||
JobSkill.method("#{locale}_search").(search_params[:query])
|
||||
.where(conditions)
|
||||
.where(sub: true)
|
||||
)
|
||||
else
|
||||
@skills = JobSkill.all
|
||||
.where(conditions)
|
||||
.where(job: job.id, main: false)
|
||||
.or(
|
||||
JobSkill.all
|
||||
.where(conditions)
|
||||
.where(sub:true)
|
||||
)
|
||||
end
|
||||
# Set the conditions based on the group requested
|
||||
conditions = {}
|
||||
if search_params[:filters].present? && search_params[:filters]['group'].present?
|
||||
group = search_params[:filters]['group'].to_i
|
||||
|
||||
@count = @skills.length
|
||||
@skills = @skills.paginate(page: search_params[:page], per_page: 10)
|
||||
if group >= 0 && group < 4
|
||||
conditions[:color] = group
|
||||
conditions[:emp] = false
|
||||
conditions[:base] = false
|
||||
elsif group == 4
|
||||
conditions[:emp] = true
|
||||
elsif group == 5
|
||||
conditions[:base] = true
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
# Perform the query
|
||||
@skills = if search_params[:query].present? && search_params[:query].length >= 2
|
||||
JobSkill.method("#{locale}_search").call(search_params[:query])
|
||||
.where(conditions)
|
||||
.where(job: job.id, main: false)
|
||||
.or(
|
||||
JobSkill.method("#{locale}_search").call(search_params[:query])
|
||||
.where(conditions)
|
||||
.where(sub: true)
|
||||
)
|
||||
else
|
||||
JobSkill.all
|
||||
.where(conditions)
|
||||
.where(job: job.id, main: false)
|
||||
.or(
|
||||
JobSkill.all
|
||||
.where(conditions)
|
||||
.where(sub: true)
|
||||
)
|
||||
.or(
|
||||
JobSkill.all
|
||||
.where(conditions)
|
||||
.where(job: job.base_job.id, base: true)
|
||||
.where.not(job: job.id)
|
||||
)
|
||||
end
|
||||
|
||||
# Specify whitelisted properties that can be modified.
|
||||
def search_params
|
||||
params.require(:search).permit!
|
||||
end
|
||||
@count = @skills.length
|
||||
@skills = @skills.paginate(page: search_params[:page], per_page: 10)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Specify whitelisted properties that can be modified.
|
||||
def search_params
|
||||
params.require(:search).permit!
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue