stephenjude / laravel-sendportal
A Laravel Package to work with the SendPortal API
Installs: 2 295
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 0
Requires
- php: ^8.1
- illuminate/contracts: ^9.25|^10.0
- juststeveking/http-status-code: ^3.0
- juststeveking/laravel-data-object-tools: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.4
- laravel/pint: ^1.1
- nunomaduro/larastan: ^2.1
- orchestra/testbench: ^7.6
- pestphp/pest: ^1.21
README
The unofficial Laravel Package to work with the SendPortal APIs.
Installation
You can install the package via composer:
composer require stephenjude/laravel-sendportal
Set up
To start using this package, you need to add environment variables for:
SENDPORTAL_URL
- The url of your Sendportal account like this — https://sendportal.io/api/v1SENDPORTAL_TOKEN
- You can generate this from your SendPortal account.
The package will pick these up in its configuration and use these when it resolves an instance of the Client
.
Usage
This package can be used by using the SendPortal
facade or by injecting the SendPortal\Laravel\Http\Client
into a method to instantiate the client:
use SendPortal\Laravel\Contracts\ClientContract; use SendPortal\Laravel\Facades\SendStack; /** * Without a Facade */ $client = app()->make( abstract: ClientContract::class, ); $client->subscribers()->all(); /** * Using the Facade */ SendPortal::subscribers()->all();
Getting a list of Subscribers
use SendPortal\Laravel\Facades\SendPortal; SendPortal::subscribers()->all();
Getting a single Subscriber
use SendPortal\Laravel\Facades\SendPortal; SendPortal::subscribers()->get( subscriber: 1, );
Creating a new Subscriber
use SendPortal\Laravel\Facades\SendPortal; use SendPortal\Laravel\Http\Requests\SubscriberRequest; SendPortal::subscribers()->create( request: new SubscriberRequest( email: 'contact@sendportal.local', // Required firstName: 'Send', // Optional lastName: 'Portal', // Optional tags: [ 1, 2, ], // Optional optOut: false, // Optional ), );
Update a Subscriber
use SendPortal\Laravel\Facades\SendPortal; use SendPortal\Laravel\Http\Requests\SubscriberRequest; SendPortal::subscribers()->update( id: 1, request: new SubscriberRequest( email: 'contact@sendportal.local', // Required firstName: 'Send', // Optional lastName: 'Portal', // Optional tags: [ 1, 2, ], // Optional optOut: false, // Optional ), );
Deleting a Subscriber
use SendPortal\Laravel\Facades\SendPortal; SendPortal::subscribers()->delete( subscriberId: 1, );
Attaching a Tag to a Subscriber
use SendPortal\Laravel\Facades\SendPortal; SendPortal::subscribers()->attachTag( subscriberId: 1, tagId: 1, );
Removing a Tag from a Subscriber
use SendPortal\Laravel\Facades\SendPortal; SendPortal::subscribers()->removeTag( subscriberId: 1, tagIds: [1, 2], );
Checking if an email address is an Active Subscriber
use SendPortal\Laravel\Facades\SendPortal; SendPortal::isActiveSubscriber( subscriberId: 1, );
Getting all Tags
use SendPortal\Laravel\Facades\SendPortal; SendPortal::tags()->all();
Creating a new Tag
use SendPortal\Laravel\Facades\SendPortal; use SendPortal\Laravel\Http\Requests\TagRequest; SendPortal::tags()->create( request: new TagRequest( name: 'Test', // Required subscribers: [1], // Optional ), );
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.