mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module PermittedAttributes
|
|
class OrderCycle
|
|
def initialize(params)
|
|
@params = params
|
|
end
|
|
|
|
def call
|
|
return {} if @params[:order_cycle].blank?
|
|
|
|
@params.require(:order_cycle).permit(attributes)
|
|
end
|
|
|
|
def self.basic_attributes
|
|
[
|
|
:name, :orders_open_at, :orders_close_at, :coordinator_id,
|
|
:preferred_product_selection_from_coordinator_inventory_only,
|
|
:automatic_notifications,
|
|
{ schedule_ids: [], selected_distributor_payment_method_ids: [],
|
|
selected_distributor_shipping_method_ids: [], coordinator_fee_ids: [] }
|
|
]
|
|
end
|
|
|
|
private
|
|
|
|
def attributes
|
|
self.class.basic_attributes + [incoming_exchanges: permitted_exchange_attributes,
|
|
outgoing_exchanges: permitted_exchange_attributes]
|
|
end
|
|
|
|
def permitted_exchange_attributes
|
|
[
|
|
:id, :sender_id, :receiver_id, :enterprise_id, :incoming, :active,
|
|
:select_all_variants, :receival_instructions,
|
|
:pickup_time, :pickup_instructions,
|
|
:tag_list,
|
|
{ tags: [:text],
|
|
enterprise_fee_ids: [],
|
|
variants: {} }
|
|
]
|
|
end
|
|
end
|
|
end
|