Sha256: b3b569ef3095a9a9cf5780f1e5a1e5e9dae2f12051f344136707852704f61499

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

class TicketsController < ApplicationController
  before_filter :find_ticket, only: [:show, :update, :close, :reopen]
  
  attr_reader :ticket
  
  def show
    render json: FullTicketPresenter.new(ticket)
  end
  
  def update
    params[:last_release_at] = params.fetch(:lastReleaseAt, params[:last_release_at])
    attributes = params.pick(:last_release_at, :priority, :summary, :description)

    if ticket.update_attributes(attributes)
      render json: []
    else
      render json: ticket.errors, status: :unprocessable_entity
    end
  end
  
  def new
    @projects = followed_projects.select(&:has_ticket_tracker?)
  end
  
  def close
    authorize! :close, ticket
    ticket.close!
    render json: []
  rescue
    render json: [$!.message], status: :unprocessable_entity
  end
  
  def reopen
    authorize! :close, ticket
    ticket.reopen!
    render json: []
  rescue
    render json: [$!.message], status: :unprocessable_entity
  end
  
private
  
  def find_ticket
    @ticket = Ticket.find(params[:id])
    @ticket.updated_by = current_user
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 app/controllers/tickets_controller.rb