diff --git a/app/controllers/api/v1/grid_characters_controller.rb b/app/controllers/api/v1/grid_characters_controller.rb index 4848d8b..a581b2f 100644 --- a/app/controllers/api/v1/grid_characters_controller.rb +++ b/app/controllers/api/v1/grid_characters_controller.rb @@ -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 diff --git a/app/controllers/api/v1/grid_summons_controller.rb b/app/controllers/api/v1/grid_summons_controller.rb index 3db26e7..335839e 100644 --- a/app/controllers/api/v1/grid_summons_controller.rb +++ b/app/controllers/api/v1/grid_summons_controller.rb @@ -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 diff --git a/app/controllers/api/v1/grid_weapons_controller.rb b/app/controllers/api/v1/grid_weapons_controller.rb index 07cefdb..56c0f25 100644 --- a/app/controllers/api/v1/grid_weapons_controller.rb +++ b/app/controllers/api/v1/grid_weapons_controller.rb @@ -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