[libmagpie-perl] 04/30: add a Stripe input transformer
Jonas Smedegaard
dr at jones.dk
Wed Dec 6 00:56:38 UTC 2017
This is an automated email from the git hooks/post-receive script.
js pushed a commit to annotated tag debian/1.163200-1
in repository libmagpie-perl.
commit 3552b15ca36233849d97fad1782f283f8400b8c4
Author: Chris Prather <chris at prather.org>
Date: Fri Feb 21 20:55:09 2014 -0500
add a Stripe input transformer
---
lib/Magpie/Transformer/Input/Stripe.pm | 59 ++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/lib/Magpie/Transformer/Input/Stripe.pm b/lib/Magpie/Transformer/Input/Stripe.pm
new file mode 100644
index 0000000..05148ba
--- /dev/null
+++ b/lib/Magpie/Transformer/Input/Stripe.pm
@@ -0,0 +1,59 @@
+package Magpie::Transformer::Input::Stripe;
+use Moose;
+extends qw(Magpie::Transformer);
+use Magpie::Constants;
+use Net::Stripe;
+
+__PACKAGE__->register_events(qw(transform));
+sub load_queue { return qw(transform) }
+
+has stripe => (
+ isa => 'Net::Stripe',
+ is => 'ro',
+ lazy => 1,
+ builder => '_build_stripe'
+
+);
+
+sub _build_stripe {
+ my $self = shift;
+ try {
+ $self->resolve_asset(service => 'stripe');
+ } catch {
+ try {
+ my $api_key = $self->resolve_asset($api_key);
+ Net::Stripe->new( api_key => $api_key);
+ }
+ catch {
+ $self->set_error({status_code => 500, reason => "Couldn't find stripe service or API key");
+ }
+ };
+}
+
+sub transform {
+ my $self = shift;
+ my $ctxt = shift;
+ my $data = $self->resource->data // $ctxt->{data};
+ return SERVER_ERROR unless $data;
+ unless (defined $data->{stripeToken}) {
+ $self->set_error( { status_code => 402, reason => 'No stripeToken found'} );
+ return DONE;
+ try {
+ my $desc = "Payment for $$data{resourceName}: $$data{student}{name}";
+ $self->stripe->post_charge(
+ amount => $data->{amount},
+ currency => 'usd',
+ card => $data->{stripeToken},
+ description => $desc,
+ );
+ return OK;
+ }
+ catch {
+ $self->set_error( { status_code => 400, reason => $_ } );
+ return DECLINED;
+ };
+
+}
+
+1;
+__END__
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmagpie-perl.git
More information about the Pkg-perl-cvs-commits
mailing list