Sha256: 34fdd4e49fc5fe8394dde7a7383c942446fc6be0dc83457eee3c04bc77406adf

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

module Spree
  module Api
    module V2
      module Storefront
        class CountriesController < ::Spree::Api::V2::ResourceController
          private

          def serialize_collection(collection)
            collection_serializer.new(
              collection,
              collection_options(collection).merge(params: collection_serializer_params)
            ).serializable_hash
          end

          def serializer_params
            super.merge(include_states: true)
          end

          def collection_serializer_params
            serializer_params.merge(include_states: false)
          end

          def resource
            return current_store.default_country if params[:iso] == 'default'

            scope.find_by(iso: params[:iso]&.upcase) ||
              scope.find_by(id: params[:iso]&.upcase) ||
              scope.find_by(iso3: params[:iso]&.upcase)
          end

          def resource_serializer
            Spree::Api::Dependencies.storefront_country_serializer.constantize
          end

          def collection_serializer
            Spree::Api::Dependencies.storefront_country_serializer.constantize
          end

          def collection_finder
            Spree::Api::Dependencies.storefront_country_finder.constantize
          end

          def model_class
            Spree::Country
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spree_api-4.3.0.rc2 app/controllers/spree/api/v2/storefront/countries_controller.rb
spree_api-4.3.0.rc1 app/controllers/spree/api/v2/storefront/countries_controller.rb