Skip to content

Instantly share code, notes, and snippets.

View mfountoulakis's full-sized avatar
🐩

Manos Fountoulakis mfountoulakis

🐩
  • Providence
View GitHub Profile
#app/services/create_card.rb
require 'stripe'
class CreateCard
def initialize(payment)
@payment = payment
end
def create_card
# app/services/create_stripe_customer.rb
require 'stripe'
class CreateStripeCustomer
def initialize(payment)
@payment = payment
@user = payment.user
#if the user has no stripe_customer_id create a new Stripe customer
# app/services/charge_credit_card.rb
require 'stripe'
class ChargeCreditCard
def initialize(payment)
@payment = payment
@user = payment.user
#retrieve the card object attached to the payments stripe token
@card = Stripe::Token.retrieve(@payment.stripe_token).card.id
<!-- app/views/payments/_form.html.erb -->
<%= form_for(@payment, html: { id: "payment-form" }) do |f| %>
<% if something.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(something.errors.count, "error") %> prohibited this something from being saved:</h2>
<ul>
<% @payment.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
class PaymentsController < ApplicationController
def new
# this cards variable is accessed later in payments/_form.html.erb
@payment = Payment.new
@user = User.first
@cards = @user.cards
end
def index
#index action
require 'stripe'
class CreateChargeService
def initialize(payment)
@payment = payment
@user = payment.user
end
private
@mfountoulakis
mfountoulakis / add_authentication_token_to_user.rb
Last active December 15, 2016 19:25
token based authentication with rails api using devise
class AddAuthenticationTokenToUser < ActiveRecord::Migration
def change
add_column :users, :authentication_token, :string
end
end
@mfountoulakis
mfountoulakis / populate.rake
Created December 13, 2016 17:37
faker and populator rake task
namespace :db do
desc "Erase and fill database"
task :populate => :environment do
require 'populator'
require 'faker'
[Category, Product, VolumePrice, ProductsVolumePrice, User].each(&:delete_all)
#CATEGORIES HAS MANY PRODUCS
VolumePrice.populate(2) do |volume_price|
volume_price.price = Faker::Commerce.price