FEATURE: Allow add group member endpoint to skip invite emails (#29962)

This commit is contained in:
Mark VanLandingham 2024-11-27 11:33:09 -06:00 committed by GitHub
parent b4ef3456d9
commit 8c311dcbd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View File

@ -413,7 +413,12 @@ class GroupsController < ApplicationController
emails.each do |email| emails.each do |email|
begin begin
Invite.generate(current_user, email: email, group_ids: [group.id]) Invite.generate(
current_user,
email: email,
group_ids: [group.id],
skip_email: params[:skip_email].to_s == "true",
)
rescue RateLimiter::LimitExceeded => e rescue RateLimiter::LimitExceeded => e
return( return(
render_json_error( render_json_error(

View File

@ -1707,6 +1707,23 @@ RSpec.describe GroupsController do
end end
end end
it "sends emails with invitations when `skip_emails` param isn't present" do
expect_enqueued_with(job: :invite_email) do
put "/groups/#{group.id}/members.json", params: { emails: "something@gmail.com" }
expect(response.status).to eq(200)
end
end
it "sends emails with invitations when `skip_emails` is present" do
expect_not_enqueued_with(job: :invite_email) do
put "/groups/#{group.id}/members.json?skip_email=true",
params: {
emails: "something@gmail.com",
}
expect(response.status).to eq(200)
end
end
it "displays warning when all members already exists" do it "displays warning when all members already exists" do
user1.update!(username: "john") user1.update!(username: "john")
user2.update!(username: "alice") user2.update!(username: "alice")