Sha256: 97cb6d1b2d8e221486543f560d1904861712ba33f88fff6ab8f88a31732f8817
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
module Dune::Balanced class OrderProxy I18N_SCOPE = 'dune.balanced.order' delegate :user, to: :project delegate :amount, :amount_escrowed, :debit_from, :description, :meta, :reload, :save, to: :order attr_reader :project def initialize(project) @project = project end private def order @order ||= if order_href ::Balanced::Order.find(order_href) else create_order end end def order_href @order_href ||= Order.find_by(project_id: project).try(:href) end def create_order subject = Customer.new(user, {}).fetch.create_order Order.create!(href: subject.href, project: project) subject.description = I18n.t('description', project_id: project.id, project_name: project.name, scope: I18N_SCOPE ) project_url = Rails.application.routes.url_helpers.project_url(project) subject.meta = { 'Project' => project.name, 'Goal' => project.goal, 'Campaign Type' => project.campaign_type.humanize, 'User' => project.user.name, 'Category' => project.category.name_en, 'URL' => project_url, 'Expires At' => I18n.l(project.expires_at), 'ID' => project.id, } subject.save subject end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dune-balanced-1.0.0 | app/models/dune/balanced/order_proxy.rb |