Sha256: b9afa396523191d2feb2bca22df5e7e9974386e63248d24a77092112cb6a00fe
Contents?: true
Size: 1.03 KB
Versions: 72
Compression:
Stored size: 1.03 KB
Contents
module Comee module Core class OrderSource < ApplicationRecord has_many :field_mappings validates :base_url, :name, presence: true validate :validate_field_mapping def validate_field_mapping return unless field_mapping mappings = field_mapping.map(&:with_indifferent_access) order_fields = %w[order_number order_date delivery_address invoice_address] item_fields = %w[product_code product_name unit_code quantity price delivery_date] order_dest = mappings.select { |mapping| mapping[:level] == "order" }.map { |m| m[:destination] } item_dest = mappings.select { |mapping| mapping[:level] == "item" }.map { |m| m[:destination] } order_diff = order_fields - order_dest item_diff = item_fields - item_dest errors.add(:field_mapping, "has fields #{order_diff} missing at order level.") if order_diff.count.positive? errors.add(:field_mapping, "has fields #{item_diff} missing at item level.") if item_diff.count.positive? end end end end
Version data entries
72 entries across 72 versions & 1 rubygems