This module is a fork of Recurly Aegir, whose goal is to make it more generic so that is supports multiple subscription providers.

Plan:

  1. Start a new project called Aegir Subscriptions (aegir_subscriptions).
  2. Copy Recurly Aegir into it.
  3. Move all of the Recurly-specific code into a submodule called Aegir Site Subscriptions: Recurly (aegir_site_subscriptions_recurly).
  4. Deprecate Recurly Aegir.
  5. Update and merge branch plugin-manager-scaffolding. No longer necessary as rewritten.
  6. In other issues, add new submodules (e.g. Stripe, Commerce, etc.) to the new module as desired.

Original issue from Recurly Aegir

As per the discussion at #1880614: Aegir Commerce Integration Status, I'd like to make this module more generic. Ideally, it would support any subscription service; it shouldn't be tied to Recurly only. It should also support services like Stripe Subscriptions and Commerce (perhaps via Commerce License Hosting).

So this module would be the Aegir equivalent of Licensing.

I'm proposing the following plan:

  1. Start a new project called Aegir Subscriptions (aegir_subscriptions).
  2. Copy this module into it.
  3. Move all of the Recurly-specific code into a submodule called Aegir Subscriptions: Recurly (aegir_subscriptions_recurly).
  4. Deprecate this module, Recurly Aegir.
  5. Add new submodules (e.g. Stripe, Commerce, etc.) to the new module as desired.

I won't be working on this myself in the near future unless someone provides me with funding, but I do think it's where we should go.

Thoughts?

Comments

colan created an issue. See original summary.

tommycox’s picture

Assigned: Unassigned » tommycox
Status: Needs review » Needs work

I've broken ground on this here: Aegir Subscriptions

It's currently just the minimal scaffolding for the Subscription plugin type and Provider plugin discovery. The actual functionality still needs to be implemented, then the recurly_aegir module will need to be integrated and refactored.

tommycox’s picture

@colan I've added you as a maintainer on the project as well so recurly_aegir work can continue in aegir_subscriptions_reculry once it gets integrated, and also so you can assist with the integration if need be or if the free time arises.

colan’s picture

Fantastic! Thanks for starting this. I was hoping someone other than me with a non-Recurly-specific perspective would get it going. It should keep the design more generic.

colan’s picture

Version: 8.x-1.x-dev » 8.x-2.x-dev
colan’s picture

Project: Recurly Aegir » Aegir Site Subscriptions
Version: 8.x-2.x-dev »
Component: Miscellaneous » Base API module
Assigned: tommycox » colan
Priority: Normal » Critical

Moving queues. I'll move your few commits to another branch, move the recurly_aegir in, and then look at merging your work with the scaffolding back in.

colan’s picture

Version: » 8.x-1.x-dev
Issue summary: View changes

Recurly Aegir has now been merged.

colan’s picture

Status: Needs work » Active
colan’s picture

As the name of the module and other things have changed, I'm regenerating the plugin manager, but still giving credit to @tommycox. Thanks for doing this the first time!

drupal generate:plugin:type:annotation --module="aegir_site_subscriptions" --class="SubscriptionProvider" --machine-name="aegir_site_subscription_provider" --label="Aegir site subscription provider"

  • colan committed 87de508 on issue-2813929
    Issue #2813929 by colan: Deleted Recurly's webhook notification handlers...
  • colan committed e9571f0 on issue-2813929
    Issue #2813929 by colan: Renamed/updated the config files to remove...
  • colan committed 2a7abce on issue-2813929
    Issue #2813929 by colan: Renamed the root files and the settings form.
    
  • colan committed 64cfdb2 on issue-2813929
    Issue #2813929 by colan: Replaced Recurly references in the hosting...
  • colan committed a8fc261 on issue-2813929
    Issue #2813929 by colan: Updated standard src/ files to not be Recurly-...
  • colan committed 81c6d38 on issue-2813929
    Issue #2813929 by colan: Updated wrapper class files to not be Recurly-...
  • colan committed 0d3f030 on issue-2813929
    Issue #2813929 by colan: Updated documentation for new setup with...
  • colan committed 996aa56 on issue-2813929
    Issue #2813929 by colan: Updated the composer info to not be Recurly-...
  • colan committed b404245 on issue-2813929
    Issue #2813929 by colan: Added a subscription provider plugin manager.
    
  • colan committed 1d5a8d5 on issue-2813929
    Issue #2813929 by colan: Added the new submodule Aegir Site...
colan’s picture

Issue summary: View changes

There's still some Recurly-specific stuff in src/Wrappers. It needs to be made more generic with the Recurly stuff moved to its plugin.

  • colan committed 23c5d54 on issue-2813929
    Issue #2813929 by colan: Declared a thrown exception in the installation...
  • colan committed 4c70866 on issue-2813929
    Issue #2813929 by colan: Updated docblocks...
  • colan committed 5a44d32 on issue-2813929
    Issue #2813929 by colan: Added the RecurlyClient service to the Recurly...
  • colan committed 600c02b on issue-2813929
    Issue #2813929 by colan: Added missing method docblock info.
    
  • colan committed 7146403 on issue-2813929
    Issue #2813929 by colan: Finished refactoring wrapper classes.
    
  • colan committed 7e2653c on issue-2813929
    Issue #2813929 by colan: Refactoring & bug fixes found by debugger.
    
  • colan committed 8be74b0 on issue-2813929
    Issue #2813929 by colan: Fixed main module's coding standards are per...
  • colan committed a205649 on issue-2813929
    Issue #2813929 by colan: Added a missing URL protocol in the README.
    
  • colan committed b6779d3 on issue-2813929
    Issue #2813929 by colan: Minor corrections and added some @throws to...
  • colan committed d791ccf on issue-2813929
    Issue #2813929 by colan: Added necessary methods to the subscriptions...
colan’s picture

Refactoring is mostly done. What's left:

  • Removing deprecated code, and
  • Testing.
colan’s picture

colan’s picture

Status: Active » Fixed

Will handle the deprecated code in other issues.

  • colan committed 0d3f030 on 8.x-1.x
    Issue #2813929 by colan: Updated documentation for new setup with...
  • colan committed 1d5a8d5 on 8.x-1.x
    Issue #2813929 by colan: Added the new submodule Aegir Site...
  • colan committed 23c5d54 on 8.x-1.x
    Issue #2813929 by colan: Declared a thrown exception in the installation...
  • colan committed 2a7abce on 8.x-1.x
    Issue #2813929 by colan: Renamed the root files and the settings form.
    
  • colan committed 4c70866 on 8.x-1.x
    Issue #2813929 by colan: Updated docblocks...
  • colan committed 5a44d32 on 8.x-1.x
    Issue #2813929 by colan: Added the RecurlyClient service to the Recurly...
  • colan committed 600c02b on 8.x-1.x
    Issue #2813929 by colan: Added missing method docblock info.
    
  • colan committed 64cfdb2 on 8.x-1.x
    Issue #2813929 by colan: Replaced Recurly references in the hosting...
  • colan committed 7146403 on 8.x-1.x
    Issue #2813929 by colan: Finished refactoring wrapper classes.
    
  • colan committed 7e2653c on 8.x-1.x
    Issue #2813929 by colan: Refactoring & bug fixes found by debugger.
    
  • colan committed 81c6d38 on 8.x-1.x
    Issue #2813929 by colan: Updated wrapper class files to not be Recurly-...
  • colan committed 87de508 on 8.x-1.x
    Issue #2813929 by colan: Deleted Recurly's webhook notification handlers...
  • colan committed 8be74b0 on 8.x-1.x
    Issue #2813929 by colan: Fixed main module's coding standards are per...
  • colan committed 996aa56 on 8.x-1.x
    Issue #2813929 by colan: Updated the composer info to not be Recurly-...
  • colan committed 99a20b4 on 8.x-1.x
    Issue #2813929 by colan: Merge branch 'issue-2813929' into 8.x-1.x
    
  • colan committed a205649 on 8.x-1.x
    Issue #2813929 by colan: Added a missing URL protocol in the README.
    
  • colan committed a8fc261 on 8.x-1.x
    Issue #2813929 by colan: Updated standard src/ files to not be Recurly-...
  • colan committed b404245 on 8.x-1.x
    Issue #2813929 by colan: Added a subscription provider plugin manager.
    
  • colan committed b6779d3 on 8.x-1.x
    Issue #2813929 by colan: Minor corrections and added some @throws to...
  • colan committed d791ccf on 8.x-1.x
    Issue #2813929 by colan: Added necessary methods to the subscriptions...
  • colan committed e9571f0 on 8.x-1.x
    Issue #2813929 by colan: Renamed/updated the config files to remove...
colan’s picture

Issue summary: View changes
colan’s picture

  • colan committed 7350792 on 8.x-1.x
    Issue #2813929 by colan: Updated documentation.
    
  • colan committed ed91d25 on 8.x-1.x
    Issue #2813929 by colan: Fixed some minor bugs that came out in testing.
    

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.