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

pulibrary / lib_jobs / 89e85bb9-92b2-4d31-b7f4-9a8d779c56ba

20 May 2026 10:21PM UTC coverage: 96.209% (-0.01%) from 96.223%
89e85bb9-92b2-4d31-b7f4-9a8d779c56ba

Pull #1084

circleci

sandbergja
Remove JWT tests
Pull Request #1084: Remove JWT gem and code

3680 of 3825 relevant lines covered (96.21%)

1149.86 hits per line

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

69.86
/app/controllers/data_sets_controller.rb
1
# frozen_string_literal: true
2
class DataSetsController < ApplicationController
1✔
3
  before_action :set_data_set, only: [:show, :edit, :update, :destroy]
1✔
4
  before_action :redirect_clear_filters, only: [:index]
1✔
5

6
  # GET /data_sets
7
  # GET /data_sets.json
8
  def index
1✔
9
    @data_sets = DataSetList.new(filter_data_sets)
11✔
10
  end
11

12
  # GET /data_sets/1
13
  # GET /data_sets/1.json
14
  def show; end
1✔
15

16
  # GET /data_sets/new
17
  def new
1✔
18
    @data_set = DataSet.new
×
19
  end
20

21
  # GET /data_sets/1/edit
22
  def edit; end
1✔
23

24
  # POST /data_sets
25
  # POST /data_sets.json
26
  def create
1✔
27
    @data_set = DataSet.new(data_set_params)
×
28

29
    respond_to do |format|
×
30
      if @data_set.save
×
31
        format.html { redirect_to @data_set, notice: 'Data set was successfully created.' }
×
32
        format.json { render :show, status: :created, location: @data_set }
×
33
      else
34
        format.html { render :new }
×
35
        format.json { render json: @data_set.errors, status: :unprocessable_content }
×
36
      end
37
    end
38
  end
39

40
  # PATCH/PUT /data_sets/1
41
  # PATCH/PUT /data_sets/1.json
42
  def update
1✔
43
    respond_to do |format|
×
44
      if @data_set.update(data_set_params)
×
45
        format.html { redirect_to @data_set, notice: 'Data set was successfully updated.' }
×
46
        format.json { render :show, status: :ok, location: @data_set }
×
47
      else
48
        format.html { render :edit }
×
49
        format.json { render json: @data_set.errors, status: :unprocessable_content }
×
50
      end
51
    end
52
  end
53

54
  # DELETE /data_sets/1
55
  # DELETE /data_sets/1.json
56
  def destroy
1✔
57
    @data_set.destroy
×
58
    respond_to do |format|
×
59
      format.html { redirect_to data_sets_url, notice: 'Data set was successfully destroyed.' }
×
60
      format.json { head :no_content }
×
61
    end
62
  end
63

64
  def latest
1✔
65
    authorize! :get_latest, DataSet
3✔
66
    file_name = latest_params[:category].underscore
1✔
67
    category = file_name.camelize
1✔
68
    data_set = DataSet.where(category:, status: true).sort_by(&:report_time).last
1✔
69

70
    raise ActionController::RoutingError, 'Not Found' if data_set.blank?
1✔
71

72
    respond_with_data(data_set:, file_name:)
1✔
73
  rescue CanCan::AccessDenied
74
    respond_with_error
2✔
75
  end
76

77
  private
1✔
78

79
  def respond_with_data(data_set:, file_name:)
1✔
80
    data_reply = if data_set.data.present?
1✔
81
                   data_set.data
1✔
82
                 else
83
                   file = File.new(data_set.data_file)
×
84
                   file.read
×
85
                 end
86

87
    respond_to do |format|
1✔
88
      format.text { send_data data_reply, file_name: "#{file_name}.txt" }
2✔
89
      format.csv { send_data data_reply, file_name: "#{file_name}.csv" }
1✔
90
      format.json { send_data data_reply, file_name: "#{file_name}.json" }
1✔
91
    end
92
  end
93

94
  def respond_with_error
1✔
95
    warning_message = if current_user_params.nil?
2✔
96
                        "Denied attempt to get Latest Dataset by the anonymous client #{request.remote_ip}. #{params}"
1✔
97
                      else
98
                        "Denied attempt to get Latest Dataset by the user ID #{current_user_id}. #{params}"
1✔
99
                      end
100

101
    Rails.logger.warn(warning_message)
2✔
102

103
    respond_to do |format|
2✔
104
      format.text { head :forbidden }
4✔
105
      format.csv { head :forbidden }
2✔
106
      format.json { head :forbidden }
2✔
107
    end
108
  end
109

110
  # Use callbacks to share common setup or constraints between actions.
111
  def set_data_set
1✔
112
    @data_set = DataSet.find(params[:id])
×
113
  end
114

115
  # Never trust parameters from the scary internet, only allow the white list through.
116
  def data_set_params
1✔
117
    params.fetch(:data_set, {})
×
118
  end
119

120
  def index_params
1✔
121
    params.permit(:category, :report_date, :report_time, :commit)
45✔
122
  end
123

124
  def latest_params
1✔
125
    params.permit(:category)
1✔
126
  end
127

128
  def filter_data_sets
1✔
129
    category = index_params[:category]
11✔
130

131
    data_sets = DataSet.all
11✔
132
    data_sets = data_sets.where(category:) if category.present?
11✔
133
    data_sets = DataSet.filter_by_date(report_date: index_params[:report_date], query_context: data_sets)
11✔
134
    data_sets = DataSet.filter_by_time(report_time: index_params[:report_time], query_context: data_sets)
11✔
135
    # Put most recent reports first on list
136
    data_sets.order(report_time: :desc)
11✔
137
  end
138

139
  def redirect_clear_filters
1✔
140
    redirect_to root_path if index_params[:commit] == "Clear Filters"
12✔
141
  end
142
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