Module: Spree::Admin::JsonPreviewHelper
- Defined in:
- app/helpers/spree/admin/json_preview_helper.rb
Instance Method Summary collapse
- #admin_serializer_exists?(record) ⇒ Boolean
- #json_serializers_available?(record) ⇒ Boolean
- #link_to_show_json(record, options = {}) ⇒ Object
- #serialize_to_json(record, api_type: :store) ⇒ Object
- #store_serializer_exists?(record) ⇒ Boolean
Instance Method Details
#admin_serializer_exists?(record) ⇒ Boolean
28 29 30 |
# File 'app/helpers/spree/admin/json_preview_helper.rb', line 28 def admin_serializer_exists?(record) admin_serializer_for(record).present? end |
#json_serializers_available?(record) ⇒ Boolean
20 21 22 |
# File 'app/helpers/spree/admin/json_preview_helper.rb', line 20 def json_serializers_available?(record) store_serializer_exists?(record) || admin_serializer_exists?(record) end |
#link_to_show_json(record, options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'app/helpers/spree/admin/json_preview_helper.rb', line 4 def link_to_show_json(record, = {}) return unless json_serializers_available?(record) return unless can?(:read, record) return unless can?(:read, :json_preview) [:class] ||= 'dropdown-item' [:data] ||= { action: 'drawer#open', turbo_frame: :drawer } link_to_with_icon( 'code', Spree.t('admin.show_json'), spree.admin_json_preview_resource_path(record.to_param, resource_type: record.class.to_s), ) end |
#serialize_to_json(record, api_type: :store) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/helpers/spree/admin/json_preview_helper.rb', line 32 def serialize_to_json(record, api_type: :store) return unless record serializer = case api_type.to_sym when :store store_serializer_for(record) when :admin admin_serializer_for(record) end return nil unless serializer # Alba serializers use .new(object, params: {}).to_h serialized_hash = serializer.new( record, params: serializer_params(record, api_type) ).to_h JSON.pretty_generate(serialized_hash) end |
#store_serializer_exists?(record) ⇒ Boolean
24 25 26 |
# File 'app/helpers/spree/admin/json_preview_helper.rb', line 24 def store_serializer_exists?(record) store_serializer_for(record).present? end |