Sha256: 6595b0d8209210b6b3611877499d700bee6850d7b0d83e5afcdba32a7718135e

Contents?: true

Size: 1.75 KB

Versions: 167

Compression:

Stored size: 1.75 KB

Contents

require_dependency "ishapi/application_controller"

module Ishapi
  class GameuiController < ApplicationController
    before_action :check_long_term_token, except: []

    def buy_stars
      authorize! :buy_stars, @profile
      puts! @current_user, 'current_user'
      puts! @profile, 'profile'

      payment = Ish::Payment.new :email => @profile.email, :amount => params[:amount],
        profile: @profile

      ::Stripe.api_key = STRIPE_SK
      acct = Stripe::Account.create(
        :country => 'US',
        :type => 'custom'
      )
      charge = ::Stripe::Charge.create(
        :amount => params[:amount],
        :currency => 'usd',
        :source => params[:stripeToken],
        :destination => {
          :account => acct,
        }
      )
      puts! charge, 'charge'
      payment.charge = JSON.parse( charge.to_json )
      payment.save
      if payment.persisted?
        # add the star
        @profile.n_stars += 1
        @profile.save
        if !@profile.persisted?
          raise 'could not save profile, somehow'
        end
      else
        puts! payment.errors.messages
      end

      render json: { status: 'ok', n_stars: @profile.n_stars }
    end

    ## spend the star
    def do_purchase
      authorize! :do_purchase, ::Gameui
      item = params[:className].constantize.find_by_slug( params[:slug] )

      raise 'no such item'     if !item
      raise 'too little funds' if @profile.n_stars < item.premium_tier

      ::IshModels::UserProfile.with_session do
        @profile.update_attributes( n_stars: @profile.n_stars - item.premium_tier )
        @purchase = ::Gameui::PremiumPurchase.create! user_profile: @profile, item: item
      end

      render json: @purchase
    rescue ::Exception => e
      render json: e
    end

  end
end

Version data entries

167 entries across 167 versions & 1 rubygems

Version Path
ishapi-0.1.8.316 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.315 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.314 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.313 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.312 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.310 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.309 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.308 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.307 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.306 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.305 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.304 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.303 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.302 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.301 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.300 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.298 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.297 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.296 app/controllers/ishapi/gameui_controller.rb
ishapi-0.1.8.295 app/controllers/ishapi/gameui_controller.rb