From 5784c89b79331a2670d2d82d9760b99c7d4c41cc Mon Sep 17 00:00:00 2001 From: Manuel Bustillo Date: Sat, 28 Dec 2024 14:18:59 +0100 Subject: [PATCH] Refine endpoint to receive an affinity value and transform it into a discomfort equivalent --- app/controllers/affinities_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/affinities_controller.rb b/app/controllers/affinities_controller.rb index 9a2122c..fab690a 100644 --- a/app/controllers/affinities_controller.rb +++ b/app/controllers/affinities_controller.rb @@ -8,16 +8,16 @@ class AffinitiesController < ApplicationController def index overridden_affinities = @group.affinities .each_with_object({}) { |affinity, acc| acc[affinity.another_group(@group).id] = affinity.discomfort } - Group.pluck(:id).index_with { |group_id| overridden_affinities[group_id] || GroupAffinity::NEUTRAL } + Group.where.not(id: @group.id).pluck(:id).index_with { |group_id| GroupAffinity::MAX_DISCOMFORT - (overridden_affinities[group_id] || GroupAffinity::NEUTRAL) } .then { |affinities| render json: affinities } end def bulk_update - params.expect(affinities: [[:group_id, :discomfort]]).map(&:to_h).map do |affinity| + params.expect(affinities: [[:group_id, :affinity]]).map(&:to_h).map do |affinity| { group_a_id: @group.id, group_b_id: affinity[:group_id], - discomfort: affinity[:discomfort] + discomfort: GroupAffinity::MAX_DISCOMFORT - affinity[:affinity] } end.then { |affinities| GroupAffinity.upsert_all(affinities) } render json: {}, status: :ok @@ -25,7 +25,7 @@ class AffinitiesController < ApplicationController rescue ActiveRecord::InvalidForeignKey render json: { error: 'At least one of the group IDs provided does not exist.' }, status: :bad_request rescue ActiveRecord::StatementInvalid - render json: { error: 'Invalid group ID or discomfort provided.' } + render json: { error: 'Invalid group ID or discomfort provided.' }, status: :bad_request end private