spree_bcash 0.0.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8bb2a4f0e510bf29d5bc57174afe0d9863843952
4
- data.tar.gz: 29641287081589d6539779135c795c8626372a6e
3
+ metadata.gz: f465996d9a4a9d92f9e09d22c8db2f2572702844
4
+ data.tar.gz: 05ab6a96ae14819ea7d2267220f008b96cac9a1d
5
5
  SHA512:
6
- metadata.gz: 84b972831a2cc2b3ec4597b45fb0c55bde934a8835288c3d4d13ddbfaa8895f737031e362d24994a3e34ed0afbff4bcf860f7dd4c5369d3cef1b3ce8281ba5c4
7
- data.tar.gz: 1e8fb03e459222ad5be84f10d7f1cfec9c67db4cf3e13191fbf7069834d2b9e8ece9e4c9d9b4220609ea8f9d8727c8a97b5c87c1b84c2d129769c758e9f0b63d
6
+ metadata.gz: 52b51b2d79ed8a47fd6d6ad6fc1616330f803715175d728b2d55770c06cbebb2340d05ae8288c5963ea9164de1f668647e002f248e878b10eb82be1000ac898c
7
+ data.tar.gz: dc57cebfe2c4f4dcabab8ed46995c19c180b92eb95e493bc88d0fb21b4c2f4b18e8c2acccf7e01907f201c81732d90d3df5de59bcace9ec853c26cbf3352df7b
data/Rakefile CHANGED
@@ -1 +1,29 @@
1
- require "bundler/gem_tasks"
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/packagetask'
4
+ require 'rubygems/package_task'
5
+ require 'rspec/core/rake_task'
6
+ require 'spree/core/testing_support/common_rake'
7
+
8
+ RSpec::Core::RakeTask.new
9
+
10
+ task :default => [:spec]
11
+
12
+ spec = eval(File.read('spree_bcash.gemspec'))
13
+
14
+ Gem::PackageTask.new(spec) do |p|
15
+ p.gem_spec = spec
16
+ end
17
+
18
+ desc "Release to gemcutter"
19
+ task :release => :package do
20
+ require 'rake/gemcutter'
21
+ Rake::Gemcutter::Tasks.new(spec).define
22
+ Rake::Task['gem:push'].invoke
23
+ end
24
+
25
+ desc "Generates a dummy app for testing"
26
+ task :test_app do
27
+ ENV['LIB_NAME'] = 'spree_bcash'
28
+ Rake::Task['common:test_app'].invoke
29
+ end
@@ -0,0 +1,20 @@
1
+ module Spree
2
+ class BcashController < BaseController
3
+ protect_from_forgery :except => [:notify]
4
+ skip_before_filter :restriction_access
5
+
6
+ def notify
7
+ notification = Spree::BcashNotification.create_from_params(params)
8
+
9
+ if notification.cod_status == "1"
10
+ Order.transaction do
11
+ @order = Spree::Order.find_by_number(notification.id_pedido)
12
+
13
+ @order.payment.complete
14
+ end
15
+ end
16
+
17
+ redirect_to order_path(id: notification.id_pedido)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ module Spree
2
+ class BcashNotification < ActiveRecord::Base
3
+ belongs_to :order
4
+
5
+ attr_protected
6
+
7
+ def self.create_from_params(params)
8
+ notification = ::Bcash::Notification.new(params)
9
+
10
+ notify = self.find_by_id_transaction(notification.id_transacao)
11
+ if notify
12
+ notify.update_attributes(status: notification.status.force_encoding("iso-8859-1"))
13
+ else
14
+ self.create!(
15
+ order_id: Order.find_by_number(notification.id_pedido).id,
16
+ id_transaction: notification.id_transacao,
17
+ status: notification.status.force_encoding("iso-8859-1")
18
+ )
19
+ end
20
+
21
+ notification
22
+ end
23
+ end
24
+ end
@@ -1,7 +1,17 @@
1
1
  Spree::Order.class_eval do
2
+ has_one :bcash_notification
2
3
 
3
4
  def self.bcash_payment_method
4
5
  Spree::PaymentMethod.where(type: "Spree::PaymentMethod::BcashMethod").first
5
6
  end
6
7
 
8
+ def self.options_for_bcash(order, request)
9
+ url_retorno = request.host_with_port + "/bcash/notify"
10
+ {
11
+ :url_retorno => url_retorno,
12
+ :id_pedido => order.number,
13
+ :email_loja => Spree::Order.bcash_payment_method.preferred_email
14
+ }
15
+ end
16
+
7
17
  end
@@ -1,6 +1,6 @@
1
1
  Deface::Override.new(
2
2
  virtual_path: "spree/shared/_order_details",
3
3
  name: "replace_payment_info_bcash",
4
- insert_bottom: ".payment-info",
4
+ replace: ".payment-info",
5
5
  partial: "spree/checkout/payment/order_details_bcash"
6
6
  )
@@ -1,5 +1,8 @@
1
- <br />
2
1
  <%if @order.payment_method.instance_of? Spree::PaymentMethod::BcashMethod%>
3
- Clique no botão abaixo para fazer seu pagamento usando o Bcash
4
- <%= Bcash::Payment.new(@order.payment_method.package(@order.payment), {:email_loja => Spree::Order.bcash_payment_method.preferred_email}).html%>
2
+ <%if @order.payment.completed?%>
3
+ Seu pagamento foi processado com sucesso!
4
+ <%else%>
5
+ Clique no botão abaixo para fazer seu pagamento usando o Bcash
6
+ <%= Bcash::Payment.new(@order.payment_method.package(@order.payment), Spree::Order.options_for_bcash(@order, request)).html%>
7
+ <%end%>
5
8
  <%end%>
@@ -0,0 +1,3 @@
1
+ Spree::Core::Engine.routes.prepend do
2
+ match "bcash/notify", to: "bcash#notify", method: :post
3
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSpreeBcashNotifications < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_bcash_notifications do |t|
4
+ t.integer :order_id
5
+ t.integer :id_transaction
6
+ t.string :status
7
+
8
+ t.timestamps
9
+
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ module SpreeBcash
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+
5
+ def add_migrations
6
+ run 'bundle exec rake railties:install:migrations FROM=spree_bcash'
7
+ end
8
+
9
+ def run_migrations
10
+ question = ask "Would you like to run the migrations now? [Y/n]"
11
+
12
+ if question == "" || question.downcase == "y"
13
+ run 'bundle exec rake db:migrate'
14
+ else
15
+ puts "Skiping rake db:migrate, don't forget to run it!"
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module SpreeBcash
2
- VERSION = "0.0.2"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'bcash', '~>0.5.0'
21
+ s.add_dependency 'bcash', '~> 2.0.0'
22
22
  s.add_dependency 'spree_core'
23
23
 
24
24
  # specify any dependencies here; for example:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_bcash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matheus Caceres
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-19 00:00:00.000000000 Z
11
+ date: 2013-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcash
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.0
19
+ version: 2.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.0
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: spree_core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -62,12 +62,17 @@ files:
62
62
  - .gitignore
63
63
  - Gemfile
64
64
  - Rakefile
65
+ - app/controllers/spree/bcash_controller.rb
66
+ - app/models/spree/bcash_notification.rb
65
67
  - app/models/spree/bcash_payment.rb
66
68
  - app/models/spree/order_decorator.rb
67
69
  - app/models/spree/payment_method/bcash_method.rb
68
70
  - app/overrides/replace_payment_info.rb
69
71
  - app/views/spree/checkout/payment/_bcashmethod.html.erb
70
72
  - app/views/spree/checkout/payment/_order_details_bcash.html.erb
73
+ - config/routes.rb
74
+ - db/migrate/20130420180360_create_spree_bcash_notifications.rb
75
+ - lib/generators/spree_bcash/install/install_generator.rb
71
76
  - lib/spree_bcash.rb
72
77
  - lib/spree_bcash/engine.rb
73
78
  - lib/spree_bcash/version.rb