2018-03-25 16:15:39 +00:00
|
|
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
2018-03-25 17:30:42 +00:00
|
|
|
class EventDiscountsController < ApplicationController
|
2018-08-08 21:31:42 +00:00
|
|
|
include Controllers::EventHelper
|
2018-03-25 17:30:42 +00:00
|
|
|
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
|