Sha256: 36ffd18ce615c9d9eb53c6026500292d99e62ff28683eb732a366ca77bf65fe6
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
#!/usr/bin/env ruby # Util::Ipn -- de.oddb.org -- 29.01.2008 -- hwyss@ywesee.com require 'oddb/business/invoice' require 'oddb/util/mail' require 'oddb/util/ydim' require 'oddb/util/yus' module ODDB module Util module Ipn def Ipn.process(notification) id = notification.params["invoice"] invoice = Business::Invoice.find_by_id(id) or raise "unknown invoice '#{id}'" invoice.status = notification.status.to_s.downcase if(notification.complete?) Ipn.process_invoice(invoice) else invoice.ipn = notification end invoice.save invoice end def Ipn.process_invoice(invoice) invoice.items.each { |item| Ipn.process_item invoice, item } Ydim.inject(invoice, :payment_received => true) Mail.notify_invoice(invoice) end def Ipn.process_item(invoice, item) case item.type when :poweruser yus_name = invoice.yus_name item.expiry_time = Time.now + (60 * 60 * 24 * item.quantity) Util::Yus.set_preference(yus_name, 'poweruser_duration', item.quantity) Util::Yus.grant(yus_name, 'login', "#{ODDB.config.auth_domain}.PowerUser") Util::Yus.grant(yus_name, 'view', ODDB.config.auth_domain, item.expiry_time) when :export yus_name = invoice.yus_name item.expiry_time = Time.now + (60 * 60 * 24) Util::Yus.grant(yus_name, 'login', "#{ODDB.config.auth_domain}.PowerUser") Util::Yus.grant(yus_name, 'download', "#{ODDB.config.auth_domain}.#{item.text}", item.expiry_time) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ramaze.ch.oddb.org-1.0.0 | lib/oddb/util/ipn.rb |