Files
2026-08-08 21:14:10 -05:00

42 lines
847 B
Ruby

class TodosController < ApplicationController
before_action :set_todo, only: %i[show update destroy]
def index
render json: Todo.order(created_at: :desc)
end
def show
render json: @todo
end
def create
todo = Todo.new(todo_params)
todo.save!
render json: todo, status: :created
rescue ActiveRecord::RecordInvalid => error
render json: { errors: error.record.errors }, status: :unprocessable_entity
end
def update
@todo.update!(todo_params)
render json: @todo
rescue ActiveRecord::RecordInvalid => error
render json: { errors: error.record.errors }, status: :unprocessable_entity
end
def destroy
@todo.destroy!
head :no_content
end
private
def set_todo
@todo = Todo.find(params[:id])
end
def todo_params
params.expect(todo: %i[title completed])
end
end