19 Commits

Author SHA1 Message Date
Justin DiRose
227c55e6f5
FIX: Restrict mods from seeing Subscriptions admin features (#70)
As reported [on Meta](https://meta.discourse.org/t/discourse-subscriptions/140818/352?u=justin), moderators could access all of the subscriptions data (plugins/prices/subscribers) and manage them. This should not be the case, so this PR adds a route constraint to 404 moderators from these routes.
2021-06-08 17:24:13 -05:00
Justin DiRose
587661fafb
FEATURE: Allow one-time purchases on products (#18)
Building off the foundation of using the Prices API, this PR adds the ability to create a one-time purchase plan for any product, which then can add a user to the specified plan group.

Some things to be aware of:

    One-time purchases cannot have trials.
    One-time purchases use the Invoice API instead of Subscriptions. Invoices are created then charged immediately.
    Users should receive emails for these invoices directly from Stripe just like subscriptions.
2020-07-22 11:06:34 -05:00
Justin DiRose
c9ff55b46a
REFACTOR: Use the Prices API in place of Plans (#17)
Stripe has a newer API called Prices where you can create a price for any product and it can either be recurring or one-time. The easy part is existing Plans work with the Prices API by passing a Plan ID, but objects are returned in the slightly-different Prices API object format.

This commit is a refactor to the new API to handle the data in its new form, and lays the foundation for a one time payment plan to be added to any subscriptions product.
2020-07-15 08:44:40 -05:00
Justin DiRose
fb4fac197b
REFACTOR: Use models to store data (#11)
* REFACTOR: Use api to add subscribe link

* FIX: I18n subscribe link

* REFACTOR: Use models to store some data

This enables the plugin to show only subscription information which was
generated on Discourse. Subscription data storage is limited to the
external identifiers Stripe generates so we can interact with the API.

* DEV: Test/linting fixes/rake task
2020-05-22 11:20:05 -05:00
Rimian Perkins
b397ba5a68 name space module 2019-12-04 11:23:45 +11:00
Rimian Perkins
a95c119bcf fix paths in request specs 2019-12-03 11:48:12 +11:00
Rimian Perkins
57a18f5a4e whoops did not set currency 2019-11-30 17:24:49 +11:00
Rimian Perkins
a371d2baf6 fix broke test 2019-11-30 16:55:24 +11:00
Rimian Perkins
709aebb593 set the currency in the plan 2019-11-30 16:39:28 +11:00
Rimian Perkins
603ddc354b plan can be active or not 2019-10-24 10:02:31 +11:00
Rimian Perkins
922dee581c fix bugs in create plans 2019-10-23 15:55:06 +11:00
Rimian Perkins
a94287434d plans have group names 2019-10-23 11:50:54 +11:00
Rimian Perkins
c6bf9ca4d3 fix trial period 2019-10-23 10:16:17 +11:00
Rimian Perkins
c6dd47d328 templates, plans 2019-10-21 15:28:45 +11:00
Rimian Perkins
b05b03e25b fix up forms and requests to plan api 2019-10-17 20:34:26 +11:00
Rimian Perkins
e2b915b905 plans and products 2019-10-17 12:07:06 +11:00
Rimian Perkins
bb31deae89 basic subscribe page 2019-10-10 13:52:55 +11:00
Rimian Perkins
321f6b8a71 spec unauthenticated plans request 2019-10-10 12:31:32 +11:00
Rimian Perkins
8cc4f880eb name space admin controller 2019-10-10 12:08:52 +11:00