# Class MergeRequestsLoadContext < BaseContext

- app/contexts/merge_requests_load_context.rb

Build collection of Merge Requests based on filtering passed via params for @project

Methods

E
  - execute

Instance Public methods
execute() Link

Source: show

    # File app/contexts/merge_requests_load_context.rb, line 4
    def execute
      type = params[:f]

      merge_requests = project.merge_requests

      merge_requests = case type
                       when 'all' then merge_requests
                       when 'closed' then merge_requests.closed
                       when 'assigned-to-me' then merge_requests.opened.assigned(current_user)
                       else merge_requests.opened
                       end

      merge_requests = merge_requests.page(params[:page]).per(20)
      merge_requests = merge_requests.includes(:author, :project).order("closed, created_at desc")

      # Filter by specific assignee_id (or lack thereof)?
      if params[:assignee_id].present?
        merge_requests = merge_requests.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id]))
      end

      # Filter by specific milestone_id (or lack thereof)?
      if params[:milestone_id].present?
        merge_requests = merge_requests.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id]))
      end

      merge_requests
    end