api/app/controllers/spree/api/v2/platform/promotions_controller.rb
module Spree
module Api
module V2
module Platform
class PromotionsController < ResourceController
include ::Spree::Api::V2::Platform::PromotionRuleParams
include ::Spree::Api::V2::Platform::PromotionCalculatorParams
private
def model_class
Spree::Promotion
end
def scope_includes
[:promotion_category, :promotion_rules, :promotion_actions]
end
def spree_permitted_attributes
conditional_params = action_name == 'update' ? [:id] : []
super + [{ promotion_actions_attributes: Spree::PromotionAction.json_api_permitted_attributes.concat(conditional_params) + [{
promotion_action_line_items_attributes: Spree::PromotionActionLineItem.json_api_permitted_attributes.concat(conditional_params),
calculator_attributes: Spree::Calculator.json_api_permitted_attributes.concat(conditional_params, calculator_params)
}], promotion_rules_attributes: Spree::PromotionRule.json_api_permitted_attributes.concat(conditional_params, rule_params) }]
end
end
end
end
end
end