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

pulibrary / tigerdata-app / 6a411f67-4d90-4835-b588-71c43f14ed4a

29 Aug 2025 06:38PM UTC coverage: 73.215% (-14.9%) from 88.118%
6a411f67-4d90-4835-b588-71c43f14ed4a

Pull #1801

circleci

JaymeeH
test parallelism with 3 executors
Pull Request #1801: 1586 request mailer

10 of 10 new or added lines in 2 files covered. (100.0%)

3073 existing lines in 90 files now uncovered.

2143 of 2927 relevant lines covered (73.21%)

180.24 hits per line

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

0.0
/app/controllers/edit_requests_controller.rb
1
# frozen_string_literal: true
UNCOV
2
class EditRequestsController < ApplicationController
×
UNCOV
3
  layout "edit_request"
×
4

UNCOV
5
  before_action :set_request_model, only: %i[edit update]
×
6

7
  # GET /edit_requests/1/edit
UNCOV
8
  def edit
×
UNCOV
9
    unless current_user.superuser || current_user.sysadmin || current_user.trainer
×
UNCOV
10
      flash[:notice] = I18n.t(:no_modify_submitted)
×
UNCOV
11
      redirect_to request_path(@request_model)
×
UNCOV
12
    end
×
UNCOV
13
  end
×
14

15
  # PATCH/PUT /edit_requests/1 or /edit_requests/1.json
UNCOV
16
  def update
×
UNCOV
17
    if current_user.superuser || current_user.sysadmin || current_user.trainer
×
UNCOV
18
      respond_to do |format|
×
UNCOV
19
        if @request_model.update(request_params) && @request_model.valid_to_submit?
×
UNCOV
20
          format.html { redirect_to request_url(@request_model), notice: I18n.t(:successful_update) }
×
UNCOV
21
          format.json { render :show, status: :ok, location: @request_model }
×
UNCOV
22
        else
×
UNCOV
23
          format.html { render :edit, status: :unprocessable_entity }
×
UNCOV
24
          format.json { render json: @request_model.errors, status: :unprocessable_entity }
×
UNCOV
25
        end
×
UNCOV
26
      end
×
UNCOV
27
    else
×
UNCOV
28
      flash[:notice] = I18n.t(:no_modify_submitted)
×
UNCOV
29
      redirect_to request_path(@request_model)
×
UNCOV
30
    end
×
UNCOV
31
  end
×
32

UNCOV
33
  private
×
34

35
    # Use callbacks to share common setup or constraints between actions.
UNCOV
36
    def set_request_model
×
UNCOV
37
      @princeton_departments = Affiliation.all
×
UNCOV
38
      @princeton_users = PrincetonUsers.user_list
×
UNCOV
39
      @request_model = Request.find(params[:id])
×
UNCOV
40
    end
×
41

42
    # Only allow a list of trusted parameters through.
UNCOV
43
    def request_params
×
UNCOV
44
      request_params = params.fetch(:request, {}).permit(:request_title, :project_title, :state, :data_sponsor, :data_manager,
×
UNCOV
45
                                        :description, :parent_folder, :project_folder, :project_id, :quota, :requested_by,
×
UNCOV
46
                                        :storage_size, :storage_unit, user_roles: [], departments: [])
×
UNCOV
47
      if request_params[:departments].present?
×
UNCOV
48
        request_params[:departments] = request_params[:departments].compact_blank.map { |dep_str| JSON.parse(dep_str) }
×
UNCOV
49
      end
×
UNCOV
50
      if request_params[:user_roles].present?
×
51
        request_params[:user_roles] = request_params[:user_roles].compact_blank.map { |role_str| JSON.parse(role_str) }
×
UNCOV
52
      end
×
UNCOV
53
      move_approved_values(request_params)
×
UNCOV
54
    end
×
55

UNCOV
56
    def move_approved_values(request_params)
×
UNCOV
57
      if request_params[:quota].present?
×
UNCOV
58
        request_params[:approved_quota] = request_params.delete(:quota)
×
UNCOV
59
      end
×
UNCOV
60
      if request_params[:storage_size].present?
×
61
        request_params[:approved_storage_size] = request_params.delete(:storage_size)
×
UNCOV
62
      end
×
UNCOV
63
      if request_params[:storage_unit].present?
×
64
        request_params[:approved_storage_unit] = request_params.delete(:storage_unit)
×
UNCOV
65
      end
×
UNCOV
66
      request_params
×
UNCOV
67
    end
×
UNCOV
68
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