spree_bcash 0.0.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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