Skip to content

Commit

Permalink
Merge branch 'EN-8089-exclude-blacklisted-users' into staging
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolas-entourage committed Mar 7, 2025
2 parents 2d1d20c + 3cda3aa commit 16871f4
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 13 deletions.
2 changes: 1 addition & 1 deletion app/controllers/api/v1/neighborhoods/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def index
render json: @neighborhood.join_requests
.includes(user: :partner)
.search_by_member(params[:query])
.ordered_by_users
.ordered_by_validated_users
.accepted
.page(page)
.per(per), root: "users", each_serializer: ::V1::JoinRequestSerializer, scope: {
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/api/v1/outings/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def index
render json: @outing.join_requests
.includes(user: :partner)
.search_by_member(params[:query])
.ordered_by_users
.ordered_by_validated_users
.accepted
.page(page)
.per(per), root: "users", each_serializer: ::V1::JoinRequestSerializer, scope: { user: current_user }
Expand Down
8 changes: 4 additions & 4 deletions app/jobs/notification_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ class NotificationJob
sidekiq_options :timeout => 180

def self.perform_later sender, object, content, device_token, community, extra={}, badge=nil
NotificationJob.perform_async(sender, object, content, device_token, community, extra)
NotificationJob.perform_async(sender, object, content, device_token, community, extra.to_json)
end

def perform sender, object, content, device_token, community, extra={}
def perform sender, object, content, device_token, community, extra="{}"
return if device_token.blank?
return unless user_application = UserApplication.find_by_push_token(device_token)

if user_application.android?
perform_android(sender, object, content, device_token, community, extra)
perform_android(sender, object, content, device_token, community, JSON.parse(extra))
elsif user_application.ios?
perform_ios(sender, object, content, device_token, community, extra)
perform_ios(sender, object, content, device_token, community, JSON.parse(extra))
end
end

Expand Down
2 changes: 2 additions & 0 deletions app/mailers/group_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ def event_joined_confirmation event_id, user_id
event = Outing.find(event_id)
user = User.find(user_id)

return if event.place_limit?

IcalService.attach_ical(group: event, for_user: user, to: self)

mailjet_email(
Expand Down
7 changes: 5 additions & 2 deletions app/models/join_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ class JoinRequest < ApplicationRecord
include JoinRequestAcceptTracking

belongs_to :user
belongs_to :validated_user, -> {
where(validation_status: 'validated', deleted: false)
}, class_name: 'User', foreign_key: 'user_id'
belongs_to :joinable, polymorphic: true
belongs_to :entourage, -> {
where("join_requests.joinable_type = 'Entourage'")
Expand All @@ -32,8 +35,8 @@ class JoinRequest < ApplicationRecord
scope :rejected, -> {where(status: REJECTED_STATUS)}
scope :cancelled, -> {where(status: CANCELLED_STATUS)}

scope :ordered_by_users, -> {
joins(:user).order("join_requests.role, users.first_name")
scope :ordered_by_validated_users, -> {
joins(:validated_user).order("join_requests.role, users.first_name")
}

scope :search_by_member, ->(search) {
Expand Down
1 change: 1 addition & 0 deletions app/models/outing.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ def validate_outings_starts_at

def validate_neighborhood_ids
return unless outing?
return if user && user.admin?
return if neighborhood_ids.empty?

if (neighborhood_ids - user.neighborhood_participation_ids).any?
Expand Down
2 changes: 1 addition & 1 deletion app/services/slack_services/signal_association_creation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def payload
type: "section",
text: {
type: "mrkdwn",
text: ":pushpin: *Nom :* #{@user.full_name}"
text: ":pushpin: *Nom :* #{@user.full_name} (#{@user.postal_code}, #{@user.city})"
}
},
{
Expand Down
12 changes: 10 additions & 2 deletions spec/controllers/api/v1/neighborhoods/users_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
require 'rails_helper'

describe Api::V1::Neighborhoods::UsersController do
let(:user) { FactoryBot.create(:public_user) }
let(:neighborhood) { FactoryBot.create(:neighborhood, name: "foobar1") }
let(:user) { create(:public_user) }
let(:neighborhood) { create(:neighborhood, name: "foobar1") }
let(:result) { JSON.parse(response.body) }

describe "GET index" do
Expand All @@ -18,10 +18,18 @@
end

context "signed in" do
let(:user_cancelled) { create(:public_user, first_name: 'cancelled') }
let(:user_blocked) { create(:public_user, first_name: 'blocked') }

let!(:join_request) { create(:join_request, user: user, joinable: neighborhood, status: :accepted) }
let!(:join_request_cancelled) { create(:join_request, user: user_cancelled, joinable: neighborhood, status: :cancelled) }
let!(:join_request_blocker) { create(:join_request, user: user_blocked, joinable: neighborhood, status: :accepted) }

let(:creator) { neighborhood.user }

before { user_blocked.update_attribute(:validation_status, :blocked) }
before { get :index, params: { neighborhood_id: neighborhood.to_param, token: user.token } }

it { expect(result).to have_key("users") }
it { expect(result["users"]).to match_array([{
"id" => creator.id,
Expand Down
11 changes: 9 additions & 2 deletions spec/controllers/api/v1/outings/users_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
require 'rails_helper'

describe Api::V1::Outings::UsersController do
let(:user) { FactoryBot.create(:public_user) }
let(:outing) { FactoryBot.create(:outing, title: "foobar1") }
let(:user) { create(:public_user) }
let(:outing) { create(:outing, title: "foobar1") }
let!(:join_request_organizer) { create(:join_request, user: outing.user, joinable: outing, status: :accepted, role: :organizer) }
let(:result) { JSON.parse(response.body) }

Expand All @@ -19,9 +19,16 @@
end

context "signed in" do
let(:user_cancelled) { create(:public_user, first_name: 'cancelled') }
let(:user_blocked) { create(:public_user, first_name: 'blocked') }

let!(:join_request) { create(:join_request, user: user, joinable: outing, status: :accepted) }
let!(:join_request_cancelled) { create(:join_request, user: user_cancelled, joinable: outing, status: :cancelled) }
let!(:join_request_blocked) { create(:join_request, user: user_blocked, joinable: outing, status: :accepted) }

before { user_blocked.update_attribute(:validation_status, :blocked) }
before { get :index, params: { outing_id: outing.to_param, token: user.token } }

it { expect(result).to have_key("users") }
it { expect(result["users"]).to match_array([{
"id" => outing.user.id,
Expand Down

0 comments on commit 16871f4

Please sign in to comment.