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

pulibrary / tigerdata-app / 01128d94-f40b-49e5-85bb-b1ef82692ba2

12 Sep 2025 05:08PM UTC coverage: 88.979%. Remained the same
01128d94-f40b-49e5-85bb-b1ef82692ba2

push

circleci

web-flow
Use the system user to fetch Mediaflux version. Added error handling to the MF request. (#1844)

7 of 9 new or added lines in 1 file covered. (77.78%)

6 existing lines in 2 files now uncovered.

2535 of 2849 relevant lines covered (88.98%)

716.94 hits per line

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

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

6
  before_action :set_request_model, only: %i[edit update]
2✔
7

8
  # GET /edit_requests/1/edit
9
  def edit
2✔
10
    unless current_user.developer || current_user.sysadmin || current_user.trainer
4✔
11
      flash[:notice] = I18n.t(:no_modify_submitted)
2✔
12
      redirect_to request_path(@request_model)
2✔
13
    end
14
    add_breadcrumb(@request_model.project_title, request_path(@request_model))
4✔
15
    add_breadcrumb("Edit Submitted Request")
4✔
16
  end
17

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

36
  private
2✔
37

38
    # Use callbacks to share common setup or constraints between actions.
39
    def set_request_model
2✔
40
      @princeton_departments = Affiliation.all
10✔
41
      @request_model = Request.find(params[:id])
10✔
42
    end
43

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

58
    def move_approved_values(request_params)
2✔
59
      if request_params[:quota].present?
4✔
60
        request_params[:approved_quota] = request_params.delete(:quota)
2✔
61
      end
62
      if request_params[:storage_size].present?
4✔
63
        request_params[:approved_storage_size] = request_params.delete(:storage_size)
×
64
      end
65
      if request_params[:storage_unit].present?
4✔
UNCOV
66
        request_params[:approved_storage_unit] = request_params.delete(:storage_unit)
×
67
      end
68
      request_params
4✔
69
    end
70

71
    def set_breadcrumbs
2✔
72
      add_breadcrumb("Dashboard", dashboard_path)
10✔
73
      add_breadcrumb("Requests", requests_path)
10✔
74
    end
75
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