diff options
author | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
commit | 6438df3a1e0fb944485cebf07976160184697d72 (patch) | |
tree | 00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /lib/gitlab/cycle_analytics/base_query.rb | |
parent | 42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff) |
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'lib/gitlab/cycle_analytics/base_query.rb')
-rw-r--r-- | lib/gitlab/cycle_analytics/base_query.rb | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/lib/gitlab/cycle_analytics/base_query.rb b/lib/gitlab/cycle_analytics/base_query.rb deleted file mode 100644 index 6aedbf64f26..00000000000 --- a/lib/gitlab/cycle_analytics/base_query.rb +++ /dev/null @@ -1,54 +0,0 @@ -# frozen_string_literal: true - -module Gitlab - module CycleAnalytics - module BaseQuery - include MetricsTables - include Gitlab::Database::Median - include Gitlab::Database::DateTime - - private - - def base_query - @base_query ||= stage_query(projects.map(&:id)) - end - - def stage_query(project_ids) - query = mr_closing_issues_table.join(issue_table).on(issue_table[:id].eq(mr_closing_issues_table[:issue_id])) - .join(issue_metrics_table).on(issue_table[:id].eq(issue_metrics_table[:issue_id])) - .join(projects_table).on(issue_table[:project_id].eq(projects_table[:id])) - .join(routes_table).on(projects_table[:namespace_id].eq(routes_table[:source_id])) - .project(issue_table[:project_id].as("project_id")) - .project(projects_table[:path].as("project_path")) - .project(routes_table[:path].as("namespace_path")) - - query = limit_query(query, project_ids) - query = limit_query_by_date_range(query) - - # Load merge_requests - - query = load_merge_requests(query) - - query - end - - def limit_query(query, project_ids) - query.where(issue_table[:project_id].in(project_ids)) - .where(routes_table[:source_type].eq('Namespace')) - end - - def limit_query_by_date_range(query) - query = query.where(issue_table[:created_at].gteq(options[:from])) - query = query.where(issue_table[:created_at].lteq(options[:to])) if options[:to] - query - end - - def load_merge_requests(query) - query.join(mr_table, Arel::Nodes::OuterJoin) - .on(mr_table[:id].eq(mr_closing_issues_table[:merge_request_id])) - .join(mr_metrics_table) - .on(mr_table[:id].eq(mr_metrics_table[:merge_request_id])) - end - end - end -end |