Sha256: 1af4f4eba9b25195a1daab493b66f506a600c470f0b4a7402ec47f4913b35889

Contents?: true

Size: 1.14 KB

Versions: 5

Compression:

Stored size: 1.14 KB

Contents

require "flex_commerce_api/api_base"
module FlexCommerce
  #
  # A flex commerce asset file model
  #
  # This model provides access to the flex asset file
  #
  # It is used much like an active record model.
  #
  class AssetFile < FlexCommerceApi::ApiBase
    has_one :asset_folder
    def self.path(params, resource)
      internal_params = params.with_indifferent_access
      if !internal_params.key?("asset_folder_id") && !internal_params.key?("path") && resource && resource.relationships["asset_folder"]["links"]["related"]=~/^\/asset_folders/
        resource.relationships["asset_folder"]["links"]["related"].gsub(/\.json_api$/, '') + "/asset_files"
      elsif internal_params.key?("path") && internal_params["path"].key?("asset_folder_id") && internal_params["path"]["asset_folder_id"].is_a?(String)
        # As the asset_folder_id is going into the url, and the developer may sent it anything, then we should escape it
        new_params = internal_params.deep_dup
        new_params["path"]["asset_folder_id"] = URI.escape(new_params["path"]["asset_folder_id"])
        super(new_params, resource)
      else
        super
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
flex_commerce_api-0.8.3 app/models/asset_file.rb
flex_commerce_api-0.8.2 app/models/asset_file.rb
flex_commerce_api-0.8.1 app/models/asset_file.rb
flex_commerce_api-0.7 app/models/asset_file.rb
flex_commerce_api-0.6.57 app/models/asset_file.rb