debian-mirror-gitlab/app/models/concerns/has_integrations.rb

32 lines
810 B
Ruby
Raw Normal View History

2020-06-23 00:09:42 +05:30
# frozen_string_literal: true
2021-06-08 01:23:25 +05:30
module HasIntegrations
2020-06-23 00:09:42 +05:30
extend ActiveSupport::Concern
class_methods do
def with_custom_integration_for(integration, page = nil, per = nil)
2021-06-08 01:23:25 +05:30
custom_integration_project_ids = Integration
2021-04-29 21:17:54 +05:30
.select(:project_id)
2020-06-23 00:09:42 +05:30
.where(type: integration.type)
.where(inherit_from_id: nil)
2021-04-29 21:17:54 +05:30
.where.not(project_id: nil)
2020-06-23 00:09:42 +05:30
.page(page)
.per(per)
Project.where(id: custom_integration_project_ids)
end
2020-07-28 23:09:34 +05:30
2021-01-03 14:25:43 +05:30
def without_integration(integration)
2021-06-08 01:23:25 +05:30
integrations = Integration
2020-07-28 23:09:34 +05:30
.select('1')
.where('services.project_id = projects.id')
.where(type: integration.type)
Project
2021-06-08 01:23:25 +05:30
.where('NOT EXISTS (?)', integrations)
2020-07-28 23:09:34 +05:30
.where(pending_delete: false)
.where(archived: false)
end
2020-06-23 00:09:42 +05:30
end
end