Sha256: 1c571936c17e9b2c05fe702f42f612bc23b4a20723b96ef490ec5796ee9b13ae

Contents?: true

Size: 1.49 KB

Versions: 5

Compression:

Stored size: 1.49 KB

Contents

module Spree
  module Admin
    class MelhorEnvioController < BaseController
      before_action :set_melhor_envio_preferences

      def index
      end

      def update
        @me_preferences = preferences_params
        Spree::Store.first.update(preferences: { melhor_envio: @me_preferences })
        redirect_to admin_melhor_envio_index_path
      end

      def authorize
        code = params[:code]
        authorize_json = MeApi::Client.new.authorize(
          client_id: @me_preferences[:client_id],
          client_secret: @me_preferences[:client_secret],
          code: code,
          redirect_url: @me_preferences[:redirect_url]
        ).json
        @me_preferences[:access_token] = authorize_json["access_token"]
        @me_preferences[:refresh_token] = authorize_json["refresh_token"]
        @me_preferences[:token_expires_in] = (DateTime.now + authorize_json["expires_in"].seconds).to_s
        Spree::Store.first.update(preferences: { melhor_envio: @me_preferences })
        redirect_to admin_melhor_envio_index_path
      end

      private

      def set_melhor_envio_preferences
        @me_preferences = Spree::Store.first.preferences[:melhor_envio]
      end

      def preferences_params
        hash_preferences = params.permit(:postal_code_from, :services, :client_id, :client_secret, :redirect_url, :state, :access_token, :refresh_token, :token_expires_in)
        hash_preferences[:services] = hash_preferences[:services].split(" ")
        hash_preferences.to_h
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
solidus_me-1.0.7 app/controller/spree/admin/melhor_envio_controller.rb
solidus_me-1.0.6 app/controller/spree/admin/melhor_envio_controller.rb
solidus_me-1.0.5 app/controller/spree/admin/melhor_envio_controller.rb
solidus_me-1.0.4 app/controller/spree/admin/melhor_envio_controller.rb
solidus_me-1.0.3 app/controller/spree/admin/melhor_envio_controller.rb