From 628276f4ff9cbb63720d1d0abfed9d15e29f473e Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:01:30 +0200 Subject: [PATCH 1/6] feat: add scope to search by login --- lib/travis/api/v3/models/organization.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/travis/api/v3/models/organization.rb b/lib/travis/api/v3/models/organization.rb index ff11a73f2..0511dddaf 100644 --- a/lib/travis/api/v3/models/organization.rb +++ b/lib/travis/api/v3/models/organization.rb @@ -9,6 +9,12 @@ class Models::Organization < Model has_preferences Models::OrganizationPreferences + scope :by_login, ->(login, provider) { where( + 'lower(login) = ? and lower(vcs_type) = ?'.freeze, + login.downcase, + provider.downcase + 'organization' + ).order("id DESC") } + after_initialize do ensure_preferences end From 227561cc45756a69646a4dccd312602e010014ac Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:02:27 +0200 Subject: [PATCH 2/6] refactor: use scope to refactor find method --- lib/travis/api/v3/queries/organization.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/travis/api/v3/queries/organization.rb b/lib/travis/api/v3/queries/organization.rb index ec8679310..c5304eea6 100644 --- a/lib/travis/api/v3/queries/organization.rb +++ b/lib/travis/api/v3/queries/organization.rb @@ -5,11 +5,7 @@ class Queries::Organization < Query def find return Models::Organization.find_by_id(id) if id return Models::Organization.find_by(vcs_id: github_id) || Models::Organization.find_by(github_id: github_id) if github_id - return Models::Organization.where( - 'lower(login) = ? and lower(vcs_type) = ?'.freeze, - login.downcase, - provider.downcase + 'organization' - ).order("id DESC").first if login + return Models::Organization.by_login(login, provider).first if login raise WrongParams, 'missing organization.id or organization.login'.freeze end From ac4082bf785fe703102c56bbdd9eae70133ce0fc Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:02:50 +0200 Subject: [PATCH 3/6] refactor: improve control flow readability --- lib/travis/api/v3/queries/organization.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/travis/api/v3/queries/organization.rb b/lib/travis/api/v3/queries/organization.rb index c5304eea6..4bc8aec81 100644 --- a/lib/travis/api/v3/queries/organization.rb +++ b/lib/travis/api/v3/queries/organization.rb @@ -45,14 +45,14 @@ def filter_ids(ids) end def vcs_type - @_vcs_type ||= - params['vcs_type'] ? - ( - params['vcs_type'].end_with?('User') ? - params['vcs_type'] : - "#{params['vcs_type'].capitalize}User" - ) - : 'GithubUser' + @_vcs_type ||= case + when params['vcs_type']&.end_with?('User') + params['vcs_type'] + when params['vcs_type'] + "#{params['vcs_type'].capitalize}User" + else + 'GithubUser' + end end private From e6dba73a98b65e5793a030784b9bfa15c86eea07 Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:19:31 +0200 Subject: [PATCH 4/6] refactor: move raising to private method --- lib/travis/api/v3/queries/organization.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/travis/api/v3/queries/organization.rb b/lib/travis/api/v3/queries/organization.rb index 4bc8aec81..c171b382a 100644 --- a/lib/travis/api/v3/queries/organization.rb +++ b/lib/travis/api/v3/queries/organization.rb @@ -23,14 +23,14 @@ def active(value, from) def suspend(value) if params['vcs_type'] - raise WrongParams, 'missing user ids'.freeze unless params['vcs_ids']&.size > 0 + raise_missing_ids_unless('vcs_ids') user_ids = Models::User.where("vcs_type = ? and vcs_id in (?)", vcs_type,params['vcs_ids']).all.map(&:id) else - raise WrongParams, 'missing user ids'.freeze unless params['user_ids']&.size > 0 + raise_missing_ids_unless('user_ids') - user_ids = params['user_ids'] - end + user_ids = params['user_ids'] + end filtered_ids = filter_ids(user_ids) Models::User.where("id in (?)", filtered_ids).update!(suspended: value, suspended_at: value ? Time.now.utc : nil) @@ -57,6 +57,10 @@ def vcs_type private + def raise_missing_ids_unless(key) + raise WrongParams, 'missing user ids'.freeze unless params[key]&.size > 0 + end + def provider params['provider'] || 'github' end From 73ead7dba89b60f5ce7af61dfca41933909c1e69 Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:20:00 +0200 Subject: [PATCH 5/6] refactor: replace map with pluck --- lib/travis/api/v3/queries/organization.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/travis/api/v3/queries/organization.rb b/lib/travis/api/v3/queries/organization.rb index c171b382a..dd01c29df 100644 --- a/lib/travis/api/v3/queries/organization.rb +++ b/lib/travis/api/v3/queries/organization.rb @@ -25,8 +25,8 @@ def suspend(value) if params['vcs_type'] raise_missing_ids_unless('vcs_ids') - user_ids = Models::User.where("vcs_type = ? and vcs_id in (?)", vcs_type,params['vcs_ids']).all.map(&:id) - else + user_ids = Models::User.where(vcs_type: vcs_type, vcs_id: params['vcs_ids']).pluck(:id) + else raise_missing_ids_unless('user_ids') user_ids = params['user_ids'] From bad3d72528dde62c659b1456ccefc06efb7848ea Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 16 May 2025 13:20:15 +0200 Subject: [PATCH 6/6] chore: update ruby in tool versions --- .tool-versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tool-versions b/.tool-versions index 78115053c..f2a971aa7 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -ruby 2.6.5 +ruby 3.2.2