diff --git a/app/controllers/api/availabilities_controller.rb b/app/controllers/api/availabilities_controller.rb index 167a0e080..b3e6aa8fa 100644 --- a/app/controllers/api/availabilities_controller.rb +++ b/app/controllers/api/availabilities_controller.rb @@ -28,7 +28,7 @@ class API::AvailabilitiesController < API::ApiController .where('slots.start_at >= ? AND slots.end_at <= ?', start_date, end_date) machine_ids = params[:m] || [] - service = PublicAvailabilitiesService.new(current_user) + service = Availabilities::PublicAvailabilitiesService.new(current_user) @availabilities = service.public_availabilities( start_date, end_date, @@ -75,19 +75,19 @@ class API::AvailabilitiesController < API::ApiController def machine @current_user_role = current_user.admin? ? 'admin' : 'user' - service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year) + service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year) @slots = service.machines(params[:machine_id], user) end def trainings - service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year) - @availabilities = service.trainings(params[:training_id], @user) + service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year) + @availabilities = service.trainings(params[:training_id], user) end def spaces @current_user_role = current_user.admin? ? 'admin' : 'user' - service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year) + service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year) @slots = service.spaces(params[:space_id], user) end @@ -148,16 +148,6 @@ class API::AvailabilitiesController < API::ApiController params.require(:lock) end - def reserved?(start_at, reservations) - is_reserved = false - reservations.each do |r| - r.slots.each do |s| - is_reserved = true if s.start_at == start_at - end - end - is_reserved - end - def filter_availabilites(availabilities) availabilities_filtered = [] availabilities.to_ary.each do |a| @@ -191,7 +181,7 @@ class API::AvailabilitiesController < API::ApiController end def remove_completed?(availability) - params[:dispo] == 'false' && (availability.reserved? || (availability.try(:completed?) && availability.completed?)) + params[:dispo] == 'false' && (availability.is_reserved || (availability.try(:completed?) && availability.completed?)) end def define_max_visibility diff --git a/app/services/availabilities/availabilities_service.rb b/app/services/availabilities/availabilities_service.rb index 99f3990ca..a402193a1 100644 --- a/app/services/availabilities/availabilities_service.rb +++ b/app/services/availabilities/availabilities_service.rb @@ -39,7 +39,7 @@ class Availabilities::AvailabilitiesService def spaces(space_id, user) space = Space.friendly.find(space_id) reservations = reservations(space) - availabilities = availabilities(machine, 'machines', user) + availabilities = availabilities(space, 'space', user) slots = [] availabilities.each do |a| @@ -72,11 +72,11 @@ class Availabilities::AvailabilitiesService reservations = reservations.joins(:slots).where('slots.start_at > ?', Time.now) # visible availabilities depends on multiple parameters - availabilities = training_availabilities(training_id, @user) + availabilities = training_availabilities(training_id, user) # finally, we merge the availabilities with the reservations availabilities.each do |a| - a.merge!(@service.training_event_reserved_status(a, reservations, user)) + a = @service.training_event_reserved_status(a, reservations, user) end end @@ -117,7 +117,7 @@ class Availabilities::AvailabilitiesService def training_availabilities(training_id, user) availabilities = if training_id.is_number? || (training_id.length.positive? && training_id != 'all') - Training.friendly.find(params[:training_id]).availabilities + Training.friendly.find(training_id).availabilities else Availability.trainings end diff --git a/app/services/availabilities/public_availabilities_service.rb b/app/services/availabilities/public_availabilities_service.rb index d572e013a..3e0257a53 100644 --- a/app/services/availabilities/public_availabilities_service.rb +++ b/app/services/availabilities/public_availabilities_service.rb @@ -57,7 +57,7 @@ class Availabilities::PublicAvailabilitiesService space: space, title: space.name ) - slot = @service.space_reserved_status(slot, reservations, @current_user, @user_role) + slot = @service.space_reserved_status(slot, reservations, @current_user) slots << slot end end @@ -88,7 +88,7 @@ class Availabilities::PublicAvailabilitiesService .where(lock: false) avails.each do |a| if a.available_type == 'training' || a.available_type == 'event' - a.merge!(@service.training_event_reserved_status(a, reservations, user)) + a = @service.training_event_reserved_status(a, reservations, @current_user) elsif a.available_type == 'space' a.is_reserved = @service.reserved_availability?(a, @current_user) end