Class: Admin::ReportRequestsController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/admin/report_requests_controller.rb

Overview

Controller for managing report requests.

Instance Method Summary collapse

Instance Method Details

#createObject

POST /report_requests POST /report_requests.json Creates a new report request.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'app/controllers/admin/report_requests_controller.rb', line 63

def create
  params = report_request_params
  params[:created_by_id] = current_user.id
  @report_request = ReportRequest.new(params)

  respond_to do |format|
    if @report_request.save
      ::ReportWorker.perform_async(@report_request.id)
      format.html { redirect_to admin_report_request_path(@report_request), notice: 'Report request was successfully created.' }
      format.json { render :show, status: :created, location: @report_request }
    else
      format.html { render :new }
      format.json { render json: @report_request.errors, status: :unprocessable_entity }
    end
  end
end

#destroyObject

DELETE /report_requests/1 DELETE /report_requests/1.json Deletes an existing report request.



100
101
102
103
104
105
106
# File 'app/controllers/admin/report_requests_controller.rb', line 100

def destroy
  @report_request.destroy
  respond_to do |format|
    format.html { redirect_to admin_report_requests_url, notice: 'Report request was successfully destroyed.' }
    format.json { head :no_content }
  end
end

#editObject

GET /report_requests/1/edit Displays a form for editing a report request.



58
# File 'app/controllers/admin/report_requests_controller.rb', line 58

def edit; end

#indexObject

GET /report_requests GET /report_requests.json Displays a list of report requests.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/controllers/admin/report_requests_controller.rb', line 27

def index

  property_present = params[:property_id] != nil && params[:property_id] != ""
  report_type_present = params[:report_type] != nil && params[:report_type] == "completed"

  if(property_present == true && report_type_present == true)
    @report_requests = ReportRequest.where('report_url != ? ', '').where(property_id: params[:property_id]).page params[:page]
  elsif property_present == true
    @report_requests = ReportRequest.where(report_url: nil).where(property_id: params[:property_id]).page params[:page]
  elsif report_type_present == true
    @report_requests = ReportRequest.where('report_url != ? ', '').page params[:page]
  else
    @report_requests = ReportRequest.where(report_url: nil).page params[:page]
  end

  render action: :index, layout: request.xhr?.nil?
end

#newObject

GET /report_requests/new Displays a form for creating a new report request.



52
53
54
# File 'app/controllers/admin/report_requests_controller.rb', line 52

def new
  @report_request = ReportRequest.new
end

#report_urlObject

Returns the report URL for a given report ID.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/admin/report_requests_controller.rb', line 9

def report_url
  report_id = params[:report_id]
  report = ReportRequest.find_by_id(report_id)
  if report.report_url.present?
    return render json: {
      status: true,
      url: report.report_url
    }
  end
  render json: {
    status: false,
    url: nil
  }
end

#showObject

GET /report_requests/1 GET /report_requests/1.json Displays the details of a specific report request.



48
# File 'app/controllers/admin/report_requests_controller.rb', line 48

def show; end

#updateObject

PATCH/PUT /report_requests/1 PATCH/PUT /report_requests/1.json Updates an existing report request.



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'app/controllers/admin/report_requests_controller.rb', line 83

def update
  params = report_request_params
  params[:updated_by_id] = current_user.id
  respond_to do |format|
    if @report_request.update(params)
      format.html { redirect_to admin_report_request_path(@report_request), notice: 'Report request was successfully updated.' }
      format.json { render :show, status: :ok, location: @report_request }
    else
      format.html { render :edit }
      format.json { render json: @report_request.errors, status: :unprocessable_entity }
    end
  end
end