dawarich/app/controllers/exports_controller.rb
Evgenii Burmakin e857f520cc
Add new indicies to improve performance and remove unused ones to opt… (#2078)
* Add new indicies to improve performance and remove unused ones to optimize database.

* Remove comments

* Update map search suggestions panel styling
2025-12-28 17:32:09 +01:00

44 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class ExportsController < ApplicationController
include ActiveStorage::SetCurrent
before_action :authenticate_user!
before_action :set_export, only: %i[destroy]
def index
@exports = current_user.exports.with_attached_file.order(created_at: :desc).page(params[:page])
end
def create
export_name =
"export_from_#{params[:start_at].to_date}_to_#{params[:end_at].to_date}.#{params[:file_format]}"
export = current_user.exports.create(
name: export_name,
status: :created,
file_format: params[:file_format],
start_at: params[:start_at],
end_at: params[:end_at]
)
redirect_to exports_url, notice: 'Export was successfully initiated. Please wait until it\'s finished.'
rescue StandardError => e
export&.destroy
ExceptionReporter.call(e)
redirect_to exports_url, alert: "Export failed to initiate: #{e.message}", status: :unprocessable_content
end
def destroy
@export.destroy
redirect_to exports_url, notice: 'Export was successfully destroyed.', status: :see_other
end
private
def set_export
@export = current_user.exports.find(params[:id])
end
end