• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / aa430f04-9cef-40fc-8a51-de9c9bd91fd2

07 Nov 2025 04:17PM UTC coverage: 91.04% (+3.8%) from 87.228%
aa430f04-9cef-40fc-8a51-de9c9bd91fd2

Pull #2168

circleci

carolyncole
Refactoring to allow easier integration of the new LUX widget
The lux widget takes the name of the routine to call when the input changes.  Making the url integrated with the page will allow us to more easily call the lookup routine

refs #2083
Pull Request #2168: Refactoring to allow easier integration of the new LUX widget

2835 of 3114 relevant lines covered (91.04%)

537.87 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.49
/app/controllers/requests_controller.rb
1
# frozen_string_literal: true
2
class RequestsController < ApplicationController
2✔
3
  before_action :set_breadcrumbs
2✔
4

5
  # GET /requests
6
  def index
2✔
7
    if current_user.eligible_sysadmin?
5✔
8
      add_breadcrumb("Project Requests - All")
2✔
9
      @draft_requests = Request.where(state: Request::DRAFT).map do |request|
2✔
10
        request.project_title = "no title set" if request.project_title.blank?
1✔
11
        request
1✔
12
      end
13
      @submitted_requests = Request.where(state: Request::SUBMITTED)
2✔
14
    else
15
      error_message = "You do not have access to this page."
3✔
16
      flash[:notice] = error_message
3✔
17
      redirect_to dashboard_path
3✔
18
    end
19
  end
20

21
  def show
2✔
22
    if current_user.developer || current_user.sysadmin || current_user.trainer
18✔
23
      @request_model = Request.find(params[:id])
14✔
24
      @request_presenter = RequestPresenter.new(@request_model)
14✔
25
      add_breadcrumb("New Project Request", new_project_project_info_path)
14✔
26
      render :show
14✔
27
    else
28
      error_message = "You do not have access to this page."
4✔
29
      flash[:notice] = error_message
4✔
30
      redirect_to dashboard_path
4✔
31
    end
32
  end
33

34
  # rubocop:disable Metrics/AbcSize
35
  # rubocop:disable Metrics/MethodLength
36
  # rubocop:disable Metrics/PerceivedComplexity
37
  # rubocop:disable Metrics/CyclomaticComplexity
38
  def approve
2✔
39
    if eligible_to_approve
18✔
40
      @request_model = Request.find(params[:id])
13✔
41
      if @request_model.valid_to_submit?
13✔
42
        project = @request_model.approve(current_user)
10✔
43
        @request_model.destroy!
8✔
44
        stub_message = "The request has been approved and this project was created in the TigerData web portal.  The request has been processed and deleted."
8✔
45
        TigerdataMailer.with(project_id: project.id, approver: current_user).project_creation.deliver_later
8✔
46
        redirect_to project_path(project.id), notice: stub_message
8✔
47
      else
48
        redirect_to new_project_review_and_submit_path(@request_model)
3✔
49
      end
50
    else
51
      error_message = "You do not have access to this page."
5✔
52
      flash[:notice] = error_message
5✔
53
      redirect_to dashboard_path
5✔
54
    end
55
  rescue StandardError => ex
56
    if ex.is_a?(Mediaflux::SessionExpired) || ex.cause.is_a?(Mediaflux::SessionExpired)
2✔
57
      raise
1✔
58
    elsif ex.is_a?(ProjectCreate::ProjectCreateError) && ex.message.include?("Session expired for token")
1✔
59
      raise Mediaflux::SessionExpired
1✔
60
    else
61
      Rails.logger.error "Error approving request #{params[:id]}. Details: #{ex.message}"
×
62
      Honeybadger.notify "Error approving request #{params[:id]}. Details: #{ex.message}"
×
63
      flash[:notice] = "Error approving request #{params[:id]}"
×
64
      redirect_to request_path(@request_model)
×
65
    end
66
  end
67
  # rubocop:enable Metrics/MethodLength
68
  # rubocop:enable Metrics/AbcSize
69
  # rubocop:enable Metrics/PerceivedComplexity
70
  # rubocop:enable Metrics/CyclomaticComplexity
71

72
  private
2✔
73

74
    def set_breadcrumbs
2✔
75
      add_breadcrumb("Dashboard", dashboard_path)
41✔
76
    end
77

78
    def eligible_to_approve
2✔
79
      current_user.sysadmin || (current_user.developer && !Rails.env.production?)
18✔
80
    end
81
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc