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

pulibrary / tigerdata-app / a3f50227-2424-4d41-8788-b953b9d6c802

24 Nov 2025 05:22PM UTC coverage: 70.412% (-17.7%) from 88.064%
a3f50227-2424-4d41-8788-b953b9d6c802

push

circleci

web-flow
Deduplicate department field from requests (#2229)

ref #2147

1 of 4 new or added lines in 1 file covered. (25.0%)

833 existing lines in 48 files now uncovered.

2344 of 3329 relevant lines covered (70.41%)

150.39 hits per line

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

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

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

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

34
  # rubocop:disable Metrics/AbcSize
35
  # rubocop:disable Metrics/MethodLength
36
  # rubocop:disable Metrics/PerceivedComplexity
37
  # rubocop:disable Metrics/CyclomaticComplexity
UNCOV
38
  def approve
×
UNCOV
39
    if eligible_to_approve
×
UNCOV
40
      @request_model = Request.find(params[:id])
×
UNCOV
41
      if @request_model.valid_to_submit?
×
UNCOV
42
        project = @request_model.approve(current_user)
×
UNCOV
43
        @request_model.destroy!
×
UNCOV
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."
×
UNCOV
45
        TigerdataMailer.with(project_id: project.id, approver: current_user).project_creation.deliver_later
×
UNCOV
46
        redirect_to project_path(project.id), notice: stub_message
×
UNCOV
47
      else
×
48
        redirect_to new_project_review_and_submit_path(@request_model)
×
UNCOV
49
      end
×
UNCOV
50
    else
×
UNCOV
51
      error_message = "You do not have access to this page."
×
UNCOV
52
      flash[:notice] = error_message
×
UNCOV
53
      redirect_to dashboard_path
×
UNCOV
54
    end
×
UNCOV
55
  rescue StandardError => ex
×
UNCOV
56
    if ex.is_a?(Mediaflux::SessionExpired) || ex.cause.is_a?(Mediaflux::SessionExpired)
×
UNCOV
57
      raise
×
UNCOV
58
    elsif ex.is_a?(ProjectCreate::ProjectCreateError) && ex.message.include?("Session expired for token")
×
UNCOV
59
      raise Mediaflux::SessionExpired
×
UNCOV
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)
×
UNCOV
65
    end
×
UNCOV
66
  end
×
67
  # rubocop:enable Metrics/MethodLength
68
  # rubocop:enable Metrics/AbcSize
69
  # rubocop:enable Metrics/PerceivedComplexity
70
  # rubocop:enable Metrics/CyclomaticComplexity
71

UNCOV
72
  private
×
73

UNCOV
74
    def set_breadcrumbs
×
UNCOV
75
      add_breadcrumb("Dashboard", dashboard_path)
×
UNCOV
76
    end
×
77

UNCOV
78
    def eligible_to_approve
×
UNCOV
79
      current_user.sysadmin || (current_user.developer && !Rails.env.production?)
×
UNCOV
80
    end
×
UNCOV
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

© 2025 Coveralls, Inc