Compare commits
No commits in common. "65a265b900aeb1ec96c36d99200951d8d5408823" and "37bbc1e4f12a9fdf1c226253a19636beb43549b7" have entirely different histories.
65a265b900
...
37bbc1e4f1
@ -9,10 +9,10 @@ class AffinitiesController < ApplicationController
|
|||||||
overridden = @group.affinities.each_with_object({}) do |affinity, acc|
|
overridden = @group.affinities.each_with_object({}) do |affinity, acc|
|
||||||
acc[affinity.another_group(@group).id] = affinity.discomfort
|
acc[affinity.another_group(@group).id] = affinity.discomfort
|
||||||
end
|
end
|
||||||
|
Group.where.not(id: @group.id)
|
||||||
for_each_group do |group_id|
|
.pluck(:id)
|
||||||
overridden[group_id] || GroupAffinity::NEUTRAL
|
.index_with { |group_id| GroupAffinity::MAX_DISCOMFORT - (overridden[group_id] || GroupAffinity::NEUTRAL) }
|
||||||
end
|
.then { |affinities| render json: affinities }
|
||||||
end
|
end
|
||||||
|
|
||||||
def bulk_update
|
def bulk_update
|
||||||
@ -33,21 +33,8 @@ class AffinitiesController < ApplicationController
|
|||||||
render json: { error: 'Invalid group ID or discomfort provided.' }, status: :bad_request
|
render json: { error: 'Invalid group ID or discomfort provided.' }, status: :bad_request
|
||||||
end
|
end
|
||||||
|
|
||||||
def default
|
|
||||||
for_each_group do |group_id|
|
|
||||||
Tables::DiscomfortCalculator.cohesion_discomfort(id_a: @group.id, id_b: group_id).to_f
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def for_each_group
|
|
||||||
Group.where.not(id: @group.id)
|
|
||||||
.pluck(:id)
|
|
||||||
.index_with { |group_id| GroupAffinity::MAX_DISCOMFORT - yield(group_id) }
|
|
||||||
.then { |affinities| render json: affinities }
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_group
|
def set_group
|
||||||
@group = Group.find(params[:group_id])
|
@group = Group.find(params[:group_id])
|
||||||
end
|
end
|
||||||
|
@ -26,7 +26,6 @@ Rails.application.routes.draw do
|
|||||||
resources :groups, only: %i[index create update destroy] do
|
resources :groups, only: %i[index create update destroy] do
|
||||||
resources :affinities, only: %i[index] do
|
resources :affinities, only: %i[index] do
|
||||||
put :bulk_update, on: :collection
|
put :bulk_update, on: :collection
|
||||||
get :default, on: :collection
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -20,21 +20,6 @@ RSpec.describe 'affinities' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
path '/{slug}/groups/{group_id}/affinities/default' do
|
|
||||||
parameter Swagger::Schema::SLUG
|
|
||||||
parameter name: 'group_id', in: :path, type: :string, format: :uuid, description: 'group_id'
|
|
||||||
|
|
||||||
get('calculate default affinity') do
|
|
||||||
tags 'Affinities'
|
|
||||||
produces 'application/json'
|
|
||||||
|
|
||||||
response(200, 'successful') do
|
|
||||||
schema type: :object, additionalProperties: { type: :integer, minimum: 0, maximum: 2 }
|
|
||||||
xit
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
path '/{slug}/groups/{group_id}/affinities/bulk_update' do
|
path '/{slug}/groups/{group_id}/affinities/bulk_update' do
|
||||||
parameter Swagger::Schema::SLUG
|
parameter Swagger::Schema::SLUG
|
||||||
parameter name: 'group_id', in: :path, type: :string, format: :uuid, description: 'group_id'
|
parameter name: 'group_id', in: :path, type: :string, format: :uuid, description: 'group_id'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user