/
items_controller.rb
45 lines (36 loc) · 929 Bytes
/
items_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class ItemsController < ApplicationController
before_action :set_item, only: [:update]
def index
items = Item.pending
render json: items
end
def create
item = Item.new(item_params)
if item.save
serialized_data = ActiveModelSerializers::Adapter::Json.new(
ItemSerializer.new(item)
).serializable_hash
ActionCable.server.broadcast 'items_channel', serialized_data
head :ok
end
end
# PATCH/PUT /items/1
def update
if @item.update(item_params)
serialized_data = ActiveModelSerializers::Adapter::Json.new(
ItemSerializer.new(Item.pending)
).serializable_hash
ActionCable.server.broadcast 'items_channel', serialized_data
head :ok
else
render :edit
end
end
private
def set_item
@item = Item.find(params[:id])
end
def item_params
params.require(:item).permit(:description, :is_done)
end
end