trabajo-afectivo/app/controllers/tickets_controller.rb

80 lines
1.9 KiB
Ruby
Raw Normal View History

2012-04-10 14:06:46 +00:00
class TicketsController < ApplicationController
before_filter :authentication_check
# GET /tickets
def index
@tickets = Ticket.all
render :json => @tickets
2012-04-10 14:06:46 +00:00
end
# GET /tickets/1
def show
@ticket = Ticket.find(params[:id])
render :json => @ticket
2012-04-10 14:06:46 +00:00
end
# POST /tickets
def create
@ticket = Ticket.new(params[:ticket])
@ticket.created_by_id = current_user.id
# check if article is given
if !params[:article]
render :json => 'article hash is missing', :status => :unprocessable_entity
return
end
# create ticket
if !@ticket.save
render :json => @ticket.errors, :status => :unprocessable_entity
return
end
# create article if given
if params[:article]
@article = Ticket::Article.new(params[:article])
@article.created_by_id = params[:article][:created_by_id] || current_user.id
@article.ticket_id = @ticket.id
# find attachments in upload cache
@article['attachments'] = Store.list(
:object => 'UploadCache::TicketZoom::' + current_user.id.to_s,
:o_id => @article.ticket_id
)
if !@article.save
render :json => @article.errors, :status => :unprocessable_entity
return
end
# remove attachments from upload cache
Store.remove(
:object => 'UploadCache::TicketZoom::' + current_user.id.to_s,
:o_id => @article.ticket_id
)
2012-04-10 14:06:46 +00:00
end
2012-04-16 12:56:04 +00:00
render :json => @ticket, :status => :created
2012-04-10 14:06:46 +00:00
end
# PUT /tickets/1
def update
@ticket = Ticket.find(params[:id])
if @ticket.update_attributes(params[:ticket])
render :json => @ticket, :status => :ok
else
render :json => @ticket.errors, :status => :unprocessable_entity
2012-04-10 14:06:46 +00:00
end
end
# DELETE /tickets/1
def destroy
@ticket = Ticket.find(params[:id])
@ticket.destroy
head :ok
2012-04-10 14:06:46 +00:00
end
end