Refactor GridObjectControllers to use blueprinter

This commit is contained in:
Justin Edmund 2022-12-21 20:53:48 -08:00
parent 2a74b8aa4d
commit 116ec9dbbc
3 changed files with 36 additions and 34 deletions

View file

@ -27,24 +27,23 @@ module Api
# a decision.
# Up to 3 characters can be removed at the same time
@conflict_characters = conflict_characters
@incoming_character = incoming_character
@incoming_position = character_params[:position]
render :conflict, status: :ok
render json: ConflictBlueprint.render(nil, view: :characters,
conflict_characters: conflict_characters,
incoming_character: incoming_character,
incoming_position: character_params[:position])
else
# Replace the grid character in the position if it is already filled
if GridCharacter.where(party_id: party.id, position: character_params[:position]).exists?
@character = GridCharacter.where(party_id: party.id, position: character_params[:position]).limit(1)[0]
@character.character_id = incoming_character.id
character = GridCharacter.where(party_id: party.id, position: character_params[:position]).limit(1)[0]
character.character_id = incoming_character.id
# Otherwise, create a new grid character
else
@character = GridCharacter.create!(character_params.merge(party_id: party.id,
character_id: incoming_character.id))
character = GridCharacter.create!(character_params.merge(party_id: party.id,
character_id: incoming_character.id))
end
render :show, status: :created if @character.save!
render json: GridCharacterBlueprint.render(character, view: :nested), status: :created if character.save!
end
end
@ -70,20 +69,21 @@ module Api
uncap_level = 5 if incoming.flb
end
@character = GridCharacter.create!(party_id: party.id, character_id: incoming.id,
position: resolve_params[:position], uncap_level: uncap_level)
render :show, status: :created if @character.save!
character = GridCharacter.create!(party_id: party.id, character_id: incoming.id,
position: resolve_params[:position], uncap_level: uncap_level)
render json: GridCharacterBlueprint.render(character, view: :nested), status: :created if character.save!
end
def update_uncap_level
@character = GridCharacter.find(character_params[:id])
character = GridCharacter.find(character_params[:id])
render_unauthorized_response if current_user && (@character.party.user != current_user)
render_unauthorized_response if current_user && (character.party.user != current_user)
@character.uncap_level = character_params[:uncap_level]
render :show, status: :ok if @character.save!
character.uncap_level = character_params[:uncap_level]
render json: GridCharacterBlueprint.render(character, view: :uncap) if character.save!
end
# TODO: Implement removing characters
def destroy; end
private

View file

@ -16,19 +16,20 @@ module Api
GridSummon.destroy(grid_summon.id)
end
@summon = GridSummon.create!(summon_params.merge(party_id: party.id, summon_id: canonical_summon.id))
render :show, status: :created if @summon.save!
summon = GridSummon.create!(summon_params.merge(party_id: party.id, summon_id: canonical_summon.id))
render json: GridSummonBlueprint.render(summon, view: :nested), status: :created if summon.save!
end
def update_uncap_level
@summon = GridSummon.find(summon_params[:id])
summon = GridSummon.find(summon_params[:id])
render_unauthorized_response if current_user && (@summon.party.user != current_user)
render_unauthorized_response if current_user && (summon.party.user != current_user)
@summon.uncap_level = summon_params[:uncap_level]
render :show, status: :ok if @summon.save!
summon.uncap_level = summon_params[:uncap_level]
render json: GridSummonBlueprint.render(summon, view: :uncap) if summon.save!
end
# TODO: Implement removing summons
def destroy; end
private

View file

@ -11,44 +11,45 @@ module Api
render_unauthorized_response if current_user && (party.user != current_user)
if grid_weapon = GridWeapon.where(
if (grid_weapon = GridWeapon.where(
party_id: party.id,
position: weapon_params[:position]
).first
).first)
GridWeapon.destroy(grid_weapon.id)
end
@weapon = GridWeapon.create!(weapon_params.merge(party_id: party.id, weapon_id: canonical_weapon.id))
weapon = GridWeapon.create!(weapon_params.merge(party_id: party.id, weapon_id: canonical_weapon.id))
if @weapon.position == -1
party.element = @weapon.weapon.element
if weapon.position == -1
party.element = weapon.weapon.element
party.save!
end
render :show, status: :created if @weapon.save!
render json: GridWeaponBlueprint.render(weapon, view: :full), status: :created if weapon.save!
end
def update
render_unauthorized_response if current_user && (@weapon.party.user != current_user)
ap weapon_params
# TODO: Server-side validation of weapon mods
# We don't want someone modifying the JSON and adding
# keys to weapons that cannot have them
# Maybe we make methods on the model to validate for us somehow
render :update, status: :ok if @weapon.update(weapon_params)
render json: GridWeaponBlueprint.render(@weapon, view: :nested) if @weapon.update(weapon_params)
end
# TODO: Implement removing characters
def destroy; end
def update_uncap_level
@weapon = GridWeapon.find(weapon_params[:id])
render_unauthorized_response if current_user && (party.user != current_user)
render_unauthorized_response if current_user && (@weapon.party.user != current_user)
@weapon.uncap_level = weapon_params[:uncap_level]
render :show, status: :ok if @weapon.save!
render json: GridWeaponBlueprint.render(@weapon, view: :uncap), status: :created if @weapon.save!
end
private