diff --git a/app/controllers/programming_groups_controller.rb b/app/controllers/programming_groups_controller.rb index a18d6ce8..77711cfc 100644 --- a/app/controllers/programming_groups_controller.rb +++ b/app/controllers/programming_groups_controller.rb @@ -50,6 +50,7 @@ class ProgrammingGroupsController < ApplicationController action: 'invited', user: user.to_page_context, } + user.pair_programming_waiting_users&.find_by(exercise: @exercise)&.update(status: :invited_to_pg, programming_group: @programming_group) ActionCable.server.broadcast("pg_matching_channel_exercise_#{@exercise.id}", message) end diff --git a/app/models/pair_programming_waiting_user.rb b/app/models/pair_programming_waiting_user.rb index 27ad72e5..e1f8ab99 100644 --- a/app/models/pair_programming_waiting_user.rb +++ b/app/models/pair_programming_waiting_user.rb @@ -12,10 +12,11 @@ class PairProgrammingWaitingUser < ApplicationRecord disconnected: 2, worked_alone: 3, created_pg: 4, + invited_to_pg: 5, }, _prefix: true validates :user_id, uniqueness: {scope: %i[exercise_id user_type]} - validates :programming_group_id, presence: true, if: -> { status_joined_pg? || status_created_pg? } + validates :programming_group_id, presence: true, if: -> { status_joined_pg? || status_created_pg? || status_invited_to_pg? } after_save :capture_event