Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Ruby Gems
/
var
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Abraham Rodriguez
2016-01-05 17:24:23 -0600
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
bfcdff609b56f1f5efc588159d09f81933dc6fc5
bfcdff60
1 parent
3537e502
Add oxxo payments
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
14 deletions
lib/generators/var_status/templates/var_status.rb → lib/generators/var_model/templates/var_model.rb
lib/generators/var_status/var_status_generator.rb → lib/generators/var_model/var_model_generator.rb
lib/var.rb
lib/generators/var_
status/templates/var_status
.rb
→
lib/generators/var_
model/templates/var_model
.rb
View file @
bfcdff6
class
AddVarStatusTo
<
%=@model_name.camelize%> < ActiveRecord::Migration
class
AddVarStatusTo
<
%=@model_name.
pluralize.
camelize%> < ActiveRecord::Migration
def change
add_column :<%=
@model_name
.
pluralize
.
underscore
%>, :var_status, :string, default: 'pending'
add_column :<%=@model_name.pluralize.underscore%>
,
:barcode_url
,
:string
end
end
...
...
lib/generators/var_
status/var_status
_generator.rb
→
lib/generators/var_
model/var_model
_generator.rb
View file @
bfcdff6
require
'rails/generators'
class
Var
Status
Generator
<
Rails
::
Generators
::
NamedBase
class
Var
Model
Generator
<
Rails
::
Generators
::
NamedBase
source_root
File
.
expand_path
(
'../templates'
,
__FILE__
)
desc
"This generator generates layout file with navigation."
def
generate_
status
def
generate_
model
d
=
Time
.
now
.
strftime
(
'%Y%m%d%H%M%S'
)
@model_name
=
name
template
"var_
status
.rb"
,
template
"var_
model
.rb"
,
"db/migrate/
#{
d
}
_add_var_status_to_
#{
name
.
pluralize
.
underscore
}
.rb"
end
end
...
...
lib/var.rb
View file @
bfcdff6
...
...
@@ -15,7 +15,6 @@ module Var
return
{
error_message:
'Service is not supported'
}
unless
VALID_SERVICES
.
include?
service
return
{
error_message:
"
#{
object
.
class
.
to_s
}
doesn't support charges"
}
unless
object
.
respond_to?
(
:charge_with
)
charge
=
object
.
charge_with
(
service
,
options
)
object
.
update_columns
(
var_status:
'payed'
)
unless
charge
.
include?
:error_message
return
charge
end
end
...
...
@@ -44,15 +43,19 @@ module ActsAsChargeable
end
def
charge_with_conekta
(
options
)
if
(
!
options
.
include?
:card_token
)
error_message
=
"Conekta needs a card token sent as a third paramater"
return
{
error_message:
error_message
}
end
charge
=
conekta_charge
(
options
)
object
.
update_columns
(
var_status:
charge
.
status
)
charge
rescue
Conekta
::
ParameterValidationError
,
Conekta
::
ProcessingError
,
Conekta
::
Error
=>
e
self
.
update_columns
(
var_status:
'failed'
)
{
error_message:
e
.
message
}
end
def
conekta_charge
(
conekta_type
)
@charge
||=
Conekta
::
Charge
.
create
({
description:
self
.
sync
(
:conekta
,
'description'
),
amount:
self
.
sync
(
:conekta
,
'amount'
),
currency:
"MXN"
,
reference_id:
self
.
sync
(
:conekta
,
'reference_id'
),
card:
options
[
:card_token
],
details:
{
name:
self
.
sync
(
:conekta
,
'name'
),
email:
self
.
sync
(
:conekta
,
'email'
),
...
...
@@ -62,10 +65,17 @@ module ActsAsChargeable
unit_price:
self
.
sync
(
:conekta
,
'amount'
),
quantity:
1
,
}]
}
})
rescue
Conekta
::
ParameterValidationError
,
Conekta
::
ProcessingError
,
Conekta
::
Error
=>
e
self
.
update_columns
(
var_status:
'failed'
)
{
error_message:
e
.
message
}
}.
merge
(
conekta_type_of_charge
(
options
)))
end
def
conekta_type_of_charge
(
conekta_type
)
if
options
[
:conekta_type
]
==
'card'
{
card:
options
[
:card_token
]
}
elsif
options
[
:conekta_type
]
==
'oxxo'
{
cash:
{
type:
"oxxo"
,
expires_at:
(
Time
.
zone
.
today
+
3
.
days
).
strftime
(
'%Y-%m-%d'
)}
}
end
end
# def charge_with_paypal(options)
...
...
Please
register
or
login
to post a comment