示例#1
0
def spec_plan(plan):
    return OrderedDict([
        ("name", plan.name),
        ("url", absolute_url(reverse("plan-detail", args=[plan.id]))),
        ("interval", plan.interval), ("interval_count", plan.interval_count),
        ("amount", str(Decimal(plan.amount).quantize(Decimal('0.0000')))),
        ("currency", plan.currency),
        ("trial_period_days", plan.trial_period_days),
        ("generate_after", plan.generate_after), ("enabled", plan.enabled),
        ("private", plan.private), ("product_code", plan.product_code.value),
        ("metered_features", [
            spec_metered_feature(metered_feature)
            for metered_feature in plan.metered_features.all()
        ]),
        ("provider",
         absolute_url(reverse("provider-detail", args=[plan.provider.id])))
    ])
示例#2
0
文件: plan.py 项目: PressLabs/silver
def spec_plan(plan):
    return OrderedDict([
        ("name", plan.name),
        ("url", absolute_url(reverse("plan-detail", args=[plan.id]))),
        ("interval", plan.interval),
        ("interval_count", plan.interval_count),
        ("amount", str(Decimal(plan.amount).quantize(Decimal('0.0000')))),
        ("currency", plan.currency),
        ("trial_period_days", plan.trial_period_days),
        ("generate_after", plan.generate_after),
        ("enabled", plan.enabled),
        ("private", plan.private),
        ("product_code", plan.product_code.value),
        ("metered_features", [
            spec_metered_feature(metered_feature) for metered_feature in plan.metered_features.all()
        ]),
        ("provider", absolute_url(reverse("provider-detail", args=[plan.provider.id])))
    ])
示例#3
0
def spec_subscription(subscription, detail=False):
    return OrderedDict([
        ("id", subscription.id),
        ("url", absolute_url(reverse("subscription-detail", args=[subscription.customer.id,
                                                                  subscription.id]))),
        ("plan", (spec_plan(subscription.plan) if detail else
                  absolute_url(reverse("plan-detail", args=[subscription.plan.id])))),
        ("customer", absolute_url(reverse("customer-detail", args=[subscription.customer.id]))),
        ("trial_end", str(subscription.trial_end) if subscription.trial_end else None),
        ("start_date", str(subscription.start_date) if subscription.start_date else None),
        ("cancel_date", str(subscription.cancel_date) if subscription.cancel_date else None),
        ("ended_at", str(subscription.ended_at) if subscription.ended_at else None),
        ("state", subscription.state),
        ("reference", subscription.reference),
        ("updateable_buckets", subscription.updateable_buckets()),
        ("meta", subscription.meta),
        ("description", subscription.description)
    ])
示例#4
0
    },
    'invoice_entries': {
        'required': False,
        'expected_input_types': list,
        'output': lambda invoice: [
            spec_document_entry(entry) for entry in invoice.entries
        ],
        'assertions': [
            lambda input, invoice, output: (
                len(input) == len(invoice.entries) == len(output) if input else
                len(invoice.entries) == len(output)
            ),
            # TODO
            # lambda input, invoice, output: (
            #     document_entry_definition.check_response(input, invoice.entries, output)
            # )
        ]
    },
    'pdf_url': {
        'read_only': True,
        'output': lambda invoice: (
            None if not (invoice.pdf and invoice.pdf.url) else
            absolute_url(invoice.pdf.url)
        )
    }
})


def spec_invoice(invoice):
    return invoice_definition.generate(invoice)
示例#5
0
def spec_payment_method_url(payment_method):
    return absolute_url(reverse("payment-method-detail", args=[payment_method.customer.id,
                                                               payment_method.id]))
示例#6
0
def spec_invoice_url(invoice):
    return absolute_url(reverse("invoice-detail", args=[invoice.id]))
示例#7
0
def spec_transaction_pay_url(transaction):
    return absolute_url(reverse("payment", args=[_get_jwt_token(transaction)]))
示例#8
0
def spec_transaction_url(transaction):
    return absolute_url(reverse("transaction-detail", args=[transaction.customer.id,
                                                            transaction.uuid]))
示例#9
0
def spec_provider_url(provider):
    return absolute_url(reverse("provider-detail", args=[provider.id]))
示例#10
0
def spec_customer_url(customer):
    return absolute_url(reverse("customer-detail", args=[customer.id]))
示例#11
0
def spec_proforma_url(proforma):
    return absolute_url(reverse("proforma-detail", args=[proforma.id]))