mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-28 21:07:16 +00:00
42 lines
1.2 KiB
CoffeeScript
42 lines
1.2 KiB
CoffeeScript
Darkswarm.factory 'CreditCard', ($injector, $rootScope, CreditCards, StripeElements, Navigation, $http, RailsFlashLoader, Loading)->
|
|
new class CreditCard
|
|
visible: false
|
|
errors: {}
|
|
secrets: {}
|
|
|
|
requestToken: =>
|
|
@setFullName()
|
|
StripeElements.requestToken(@secrets, @submit, t("saving_credit_card"))
|
|
|
|
submit: =>
|
|
params = @process_params()
|
|
$http.put('/credit_cards/new_from_token', params )
|
|
.success (data, status) =>
|
|
Loading.clear()
|
|
@reset()
|
|
CreditCards.add(data)
|
|
.error (response, status) =>
|
|
if response.path
|
|
Navigation.go response.path
|
|
else
|
|
Loading.clear()
|
|
@errors = response.errors
|
|
RailsFlashLoader.loadFlash(response.flash)
|
|
|
|
setFullName: ->
|
|
@secrets.name = "#{@secrets.first_name} #{@secrets.last_name}"
|
|
|
|
process_params: ->
|
|
{"exp_month": @secrets.card.exp_month,
|
|
"exp_year": @secrets.card.exp_year,
|
|
"last4": @secrets.card.last4,
|
|
"token": @secrets.token,
|
|
"cc_type": @secrets.cc_type}
|
|
|
|
show: => @visible = true
|
|
|
|
reset: =>
|
|
@visible = false
|
|
delete @secrets[k] for k, v of @secrets
|
|
delete @errors[k] for k, v of @errors
|