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

pulibrary / tigerdata-app / 21b3684e-2cf2-4e1c-adb5-a44be328e358

07 Nov 2025 03:59PM UTC coverage: 82.627% (-8.4%) from 91.075%
21b3684e-2cf2-4e1c-adb5-a44be328e358

Pull #2163

circleci

carolyncole
Handle error fetching project list
Pull Request #2163: Logs Mediaflux errors when fetching the project list

5 of 8 new or added lines in 1 file covered. (62.5%)

891 existing lines in 32 files now uncovered.

2592 of 3137 relevant lines covered (82.63%)

353.31 hits per line

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

30.43
/app/controllers/edit_requests_controller.rb
1
# frozen_string_literal: true
UNCOV
2
class EditRequestsController < ApplicationController
1✔
UNCOV
3
  layout "edit_request"
1✔
UNCOV
4
  before_action :set_breadcrumbs
1✔
5

UNCOV
6
  before_action :set_request_model, only: %i[edit update]
1✔
UNCOV
7
  before_action :check_access
1✔
8

9
  # GET /edit_requests/1/edit
UNCOV
10
  def edit
1✔
UNCOV
11
    add_breadcrumb(@request_model.project_title, request_path(@request_model))
×
UNCOV
12
    add_breadcrumb("Edit Submitted Request")
×
UNCOV
13
  end
14

15
  # PATCH/PUT /edit_requests/1 or /edit_requests/1.json
UNCOV
16
  def update
1✔
UNCOV
17
    respond_to do |format|
×
UNCOV
18
      if @request_model.update(request_params) && @request_model.valid_to_submit?
×
UNCOV
19
        format.html { redirect_to request_url(@request_model), notice: I18n.t(:successful_update) }
×
UNCOV
20
        format.json { render :show, status: :ok, location: @request_model }
×
UNCOV
21
      else
UNCOV
22
        format.html { render :edit, status: :unprocessable_entity }
×
UNCOV
23
        format.json { render json: @request_model.errors, status: :unprocessable_entity }
×
UNCOV
24
      end
UNCOV
25
    end
UNCOV
26
  end
27

UNCOV
28
  private
1✔
29

30
    # Use callbacks to share common setup or constraints between actions.
UNCOV
31
    def set_request_model
1✔
UNCOV
32
      @princeton_departments = Affiliation.all
×
UNCOV
33
      @project_purposes = [["Research", "research"], ["Administrative", "administrative"], ["Teaching", "teaching"]]
×
UNCOV
34
      @request_model = Request.find(params[:id])
×
UNCOV
35
    end
36

37
    # Only allow a list of trusted parameters through.
UNCOV
38
    def request_params
1✔
UNCOV
39
      request_params = params.fetch(:request, {}).permit(:request_title, :project_title, :state, :data_sponsor, :data_manager,
×
UNCOV
40
                                        :description, :project_purpose, :parent_folder, :project_folder, :project_id, :quota,
UNCOV
41
                                        :requested_by, :storage_size, :storage_unit, :number_of_files, :hpc, :smb, :globus,
UNCOV
42
                                        user_roles: [], departments: [])
43

UNCOV
44
      if request_params[:departments].present?
×
UNCOV
45
        request_params[:departments] = request_params[:departments].compact_blank.map { |dep_str| JSON.parse(dep_str) }
×
UNCOV
46
      end
UNCOV
47
      if request_params[:user_roles].present?
×
48
        request_params[:user_roles] = request_params[:user_roles].compact_blank.map { |role_str| JSON.parse(role_str) }
×
UNCOV
49
      end
UNCOV
50
      move_approved_values(request_params)
×
UNCOV
51
    end
52

UNCOV
53
    def move_approved_values(request_params)
1✔
UNCOV
54
      if request_params[:quota].present?
×
UNCOV
55
        request_params[:approved_quota] = request_params.delete(:quota)
×
UNCOV
56
      end
UNCOV
57
      if request_params[:storage_size].present?
×
58
        request_params[:approved_storage_size] = request_params.delete(:storage_size)
×
UNCOV
59
      end
UNCOV
60
      if request_params[:storage_unit].present?
×
61
        request_params[:approved_storage_unit] = request_params.delete(:storage_unit)
×
UNCOV
62
      end
UNCOV
63
      request_params
×
UNCOV
64
    end
65

UNCOV
66
    def set_breadcrumbs
1✔
UNCOV
67
      add_breadcrumb("Dashboard", dashboard_path)
×
UNCOV
68
      add_breadcrumb("Requests", requests_path)
×
UNCOV
69
    end
70

UNCOV
71
    def check_access
1✔
UNCOV
72
      return if user_eligible_to_modify_request?
×
73

74
      # request can not be modified by this user, redirect to the request
UNCOV
75
      flash[:notice] = I18n.t(:no_modify_submitted)
×
UNCOV
76
      redirect_to request_path(@request_model)
×
UNCOV
77
    end
78

UNCOV
79
    def user_eligible_to_modify_request?
1✔
80
      # elevated privs for the current user
UNCOV
81
      if current_user.sysadmin || (current_user.developer && !Rails.env.production?)
×
UNCOV
82
        true
×
UNCOV
83
      else
UNCOV
84
        false
×
UNCOV
85
      end
UNCOV
86
    end
UNCOV
87
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