first upload all files
This commit is contained in:
25
Modules/Newsletter/Http/Controllers/SubscriberController.php
Normal file
25
Modules/Newsletter/Http/Controllers/SubscriberController.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Newsletter\Http\Controllers;
|
||||
|
||||
use Newsletter;
|
||||
use Modules\Newsletter\Http\Requests\StoreSubscriberRequest;
|
||||
|
||||
class SubscriberController
|
||||
{
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(StoreSubscriberRequest $request)
|
||||
{
|
||||
Newsletter::subscribeOrUpdate($request->email);
|
||||
|
||||
if (! Newsletter::lastActionSucceeded()) {
|
||||
return response()->json([
|
||||
'message' => str_after(Newsletter::getLastError(), '400: '),
|
||||
], 403);
|
||||
}
|
||||
}
|
||||
}
|
||||
20
Modules/Newsletter/Http/Requests/StoreSubscriberRequest.php
Normal file
20
Modules/Newsletter/Http/Requests/StoreSubscriberRequest.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Newsletter\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class StoreSubscriberRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => ['required', 'email'],
|
||||
];
|
||||
}
|
||||
}
|
||||
21
Modules/Newsletter/Providers/NewsletterServiceProvider.php
Normal file
21
Modules/Newsletter/Providers/NewsletterServiceProvider.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Newsletter\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class NewsletterServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap the application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
if (config('app.installed')) {
|
||||
$this->app['config']->set('newsletter.apiKey', setting('mailchimp_api_key'));
|
||||
$this->app['config']->set('newsletter.lists.subscribers.id', setting('mailchimp_list_id'));
|
||||
}
|
||||
}
|
||||
}
|
||||
5
Modules/Newsletter/Resources/lang/en/attributes.php
Normal file
5
Modules/Newsletter/Resources/lang/en/attributes.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'email' => 'Email',
|
||||
];
|
||||
5
Modules/Newsletter/Routes/public.php
Normal file
5
Modules/Newsletter/Routes/public.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::post('subscribers', 'SubscriberController@store')->name('subscribers.store');
|
||||
28
Modules/Newsletter/composer.json
Normal file
28
Modules/Newsletter/composer.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "fleetcart/newsletter",
|
||||
"description": "The FleetCart Newsletter Module.",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Envay Soft",
|
||||
"email": "envaysoft@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.0.2",
|
||||
"spatie/laravel-newsletter": "^4.8"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Newsletter\\": ""
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"minimum-stability": "dev"
|
||||
}
|
||||
9
Modules/Newsletter/module.json
Normal file
9
Modules/Newsletter/module.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "Newsletter",
|
||||
"alias": "newsletter",
|
||||
"description": "The FleetCart Newsletter Module.",
|
||||
"priority": 100,
|
||||
"providers": [
|
||||
"Modules\\Newsletter\\Providers\\NewsletterServiceProvider"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user