Files
stopwatch/app/controllers/stopwatch_timers_controller.rb
Jens Kraemer 70257cdee0 initial commit
2020-04-22 18:03:56 +08:00

52 lines
1.1 KiB
Ruby

class StopwatchTimersController < ApplicationController
helper :timelog
before_action :require_login
before_action :find_optional_data, only: %i(new create)
def new
@time_entry = new_time_entry
respond_to :js
end
def create
@time_entry = new_time_entry
@time_entry.safe_attributes = params[:time_entry]
@result = Stopwatch::StartTimer.new(@time_entry).call
unless @result.success?
if @result.error == :unauthorized
render_403
else
render_error status: 422, message: "could not start timer: #{@result.error}"
end
end
end
def edit
end
def update
end
private
def new_time_entry
TimeEntry.new(project: @project, issue: @issue,
user: User.current, spent_on: User.current.today)
end
def find_optional_data
if params[:issue_id].present?
@issue = Issue.find(params[:issue_id])
@project = @issue.project
elsif params[:project_id].present?
@project = Project.find(params[:project_id])
end
rescue ActiveRecord::RecordNotFound
render_404
end
end