# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class EventDiscountsController < ApplicationController
  include EventHelper
	before_filter :authenticate_event_editor!, :except => [:index]

  def create
    params[:event_discount][:event_id] = current_event.id

    render JsonResp.new(params[:event_discount]){|data|
      requires(:code, :name).as_string
      requires(:event_id, :percent).as_int
    }.when_valid{|data|
      { status: 200, json: { event_discount: current_event.event_discounts.create(data) } }
    }
  end

  def index
    render json: QueryEventDiscounts.with_event_ids([current_event.id])
  end

  def update
    discount = Hamster.to_ruby(
      Psql.execute(
        Qexpr.new.update(:event_discounts, params[:event_discount])
        .where('id=$id', id: params[:id])
        .returning('*')
      ).first
    )
    render json: {status: 200, data: discount } 
  end

  def destroy
    Psql.execute(
      Qexpr.new.delete_from("event_discounts")
        .where("event_discounts.event_id=$id", id: params["event_id"])
        .where("event_discounts.id=$id", id: params["id"])
    )
  end

end