84 lines
2.1 KiB
Ruby
84 lines
2.1 KiB
Ruby
class Raven
|
|
class ItemController
|
|
|
|
get '/' do
|
|
redirect '/item/list'
|
|
end
|
|
get '/list' do
|
|
items = Item.reverse(:updated_at).all()
|
|
erb :'item/list', :locals => {
|
|
:title => 'List of Items',
|
|
:items => items
|
|
}
|
|
end
|
|
|
|
get '/create' do
|
|
erb :'item/create', :locals => {
|
|
:title => 'Create New Item'
|
|
}
|
|
end
|
|
post '/create' do
|
|
item = Item.create(
|
|
name: params[:item_name],
|
|
serial_number: params[:item_serial],
|
|
sku_number: params[:item_sku],
|
|
purchased_from: params[:item_purchase_from],
|
|
purchased_at: params[:item_purchase_date],
|
|
manufacturer: params[:item_manufacturer],
|
|
type: params[:item_type]
|
|
)
|
|
|
|
redirect "/item/#{item.id}"
|
|
end
|
|
|
|
get '/:item_id' do
|
|
item = Item.where(id: params[:item_id]).first()
|
|
puts "#{item.name}"
|
|
erb :'item/view', :locals => {
|
|
:title => item.name,
|
|
:item => item
|
|
}
|
|
end
|
|
|
|
get '/:item_id/edit' do
|
|
item = Item.where(id: params[:item_id]).first()
|
|
puts "#{item.name}"
|
|
erb :'item/edit', :locals => {
|
|
:title => "Editing: #{item.name}",
|
|
:item => item
|
|
}
|
|
end
|
|
post '/:item_id/edit' do
|
|
item = Item.where(id: params[:item_id]).first()
|
|
|
|
item.name = params[:item_name]
|
|
item.serial_number = params[:item_serial]
|
|
item.sku_number = params[:item_sku]
|
|
item.purchased_from = params[:item_purchase_from]
|
|
item.purchased_at = params[:item_purchase_date]
|
|
item.manufacturer = params[:item_manufacturer]
|
|
item.type = params[:item_type]
|
|
item.save()
|
|
|
|
redirect "/item/#{item.id}"
|
|
end
|
|
|
|
get '/:item_id/delete' do
|
|
item = Item.where(id: params[:item_id]).first()
|
|
item.delete()
|
|
|
|
redirect '/item/list'
|
|
end
|
|
|
|
post '/:item_id/comment' do
|
|
item = Item.first(id: params[:item_id])
|
|
|
|
comment = ItemComment.create(body: params[:comment_body])
|
|
item.add_item_comment(comment)
|
|
|
|
redirect "/item/#{item.id}"
|
|
end
|
|
|
|
end
|
|
end
|