dystcz/lunar-api-newsletter

Add the possibility to sign up to newsletter lists to your Lunar backend

1.0.0-alpha.1 2024-05-01 23:54 UTC

README

This lunar-api compatible package exposes an API endpoint which allows you to subscribe to newsletter lists by providing an email address using the spatie/laravel-newsletter package.

This initial version only takes an email address and subscribes to a list. There may be more endpoints added upon request in the future.

Latest Version on Packagist Total Downloads GitHub Actions

Installation

You can install the package via composer:

composer require dystcz/lunar-api-newsletter

To publish the laravel-newsletter config file to config/newsletter.php run:

php artisan vendor:publish --tag="newsletter-config"

The full configuration can be found here: spatie/laravel-newsletter

Using Brevo

To use Brevo, install this extra package.

composer require getbrevo/brevo-php "1.x.x"

The driver key of the newsletter config file must be set to Dystcz\LunarApiNewsletter\Drivers\BrevoDriver::class.

Next, you must provide values for the API key and list.subscribers.id. You'll find these values in Brevo settings.

The endpoint config value can be set to an empty string.

Using MailChimp

To use MailChimp, install this extra package.

composer require drewm/mailchimp-api

The driver key of the newsletter config file must be set to Spatie\Newsletter\Drivers\MailChimpDriver::class.

Next, you must provide values for the API key and list.subscribers.id. You'll find these values in the MailChimp UI.

The endpoint config value can be set to an empty string.

Using Mailcoach

To let this package work with Mailcoach, you need to install the Mailcoach SDK.

composer require spatie/mailcoach-sdk-php

Next, you must provide values for the API key, endpoint and list.subscribers.id in the config file. You'll find the API key and endpoint in the Mailcoach settings screen. The value for list.subscribers.id must be the UUID of an email list on Mailcoach. You'll find this value on the settings screen of an email list

Usage

Make a POST request here /api/v1/newsletters/-actions/subscribe with the following data:

$data = [
    'type' => 'newsletters',
    'attributes' => [
        'email' => $email,
    ],
];

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email jakub@dy.st instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.