31 lines
No EOL
1.2 KiB
Ruby
31 lines
No EOL
1.2 KiB
Ruby
module DeleteCampaignGiftOption
|
|
def self.delete(campaign, campaign_gift_option_id)
|
|
ParamValidation.new({:campaign => campaign,
|
|
:campaign_gift_option_id => campaign_gift_option_id},
|
|
{
|
|
:campaign => {
|
|
:required => true,
|
|
:is_a => Campaign
|
|
},
|
|
:campaign_gift_option_id => {
|
|
:required => true,
|
|
:is_integer => true
|
|
}
|
|
}
|
|
)
|
|
Qx.transaction do
|
|
cgo = campaign.campaign_gift_options.where('id = ? ', campaign_gift_option_id).first
|
|
unless cgo
|
|
raise ParamValidation::ValidationError.new("#{campaign_gift_option_id} is not a valid gift option for campaign #{campaign.id}", {:key => :campaign_gift_option_id})
|
|
end
|
|
|
|
if (cgo.campaign_gifts.any?)
|
|
raise ParamValidation::ValidationError.new("#{campaign_gift_option_id} already has campaign gifts. It can't be deleted for safety reasons.", {:key => :campaign_gift_option_id})
|
|
end
|
|
|
|
cgo.destroy
|
|
|
|
return cgo
|
|
end
|
|
end
|
|
end |