Skip to content

Commit

Permalink
馃殌 Added the ability to define the read_at column on notifications table
Browse files Browse the repository at this point in the history
  • Loading branch information
codepotato committed Oct 8, 2020
1 parent d10886c commit 2d1fd84
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 3 deletions.
47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,58 @@ Using the database driver for laravel notifications is great, but then you need
6. Open your App/Console/Kernel.php and in the scheduler define how often you would like the digest process to run. E.g. ```$schedule->command('digestif:pour')->hourly();``` Alternatively, setup your own cron process to run ```php artisan digestif:pour``` when you would like emails to be sent.
7. Sit back and let Digestif handle the rest 馃

## Customisation options
## Config options
Using the vendor:publish method you have full control of both the notification that we use behind the scenes. You can find this in your App/Notifications folder and you're welcome to tweak this to something that works better for you.

For example:

| Config Variable | Default | Description
|---|---|---|
| enabled | true (boolean) | Should Digestif run or not? |
| type | simple (string) | What variety of email should it send. Only one option at the moment |
| user_model | User::class | What model is used for users that should receive the digest email |
| notifications_user_id_column | notifiable_id (string) | What column on the notifications table stores the user_id |
| read_column | read_at | What column from the notifications table stores whether the notification has been read or not |


## Roadmap
- [x] ~~Simple digest email~~
- [ ] Refactor to filter out user notifications only
- [ ] Unsubscribing from the digest email
- [ ] Itemised digest emails as well as our simple counter version
- [ ] User controls to set the frequency of their digests


## Upgrade Guide

### To v0.20 from v0.10

Add the following to your digestif.php config file:

```
/*
|--------------------------------------------------------------------------
| Notifications read column
|--------------------------------------------------------------------------
|
| Please tell us what column stores the read toggle for notifications
|
*/
'read_column' => 'read_at',
```

### To v0.10 from v0.0.2

Add the following to your digestif.php config file

```composer log
/*
|--------------------------------------------------------------------------
| Notifications table user ID column
|--------------------------------------------------------------------------
|
| Please tell us what column stores the user_id used for notifications
|
*/
'notifications_user_id_column' => 'notifiable_id',
```
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "codepotatoltd/digestif",
"description": "A digest email for Laravel database notifications",
"version": "0.1.0",
"version": "0.2.0",
"type": "library",
"require": {
"php": ">=7.4",
Expand Down
3 changes: 2 additions & 1 deletion src/Tasks/Digestable.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@ public function run()
$user_column = \config('digestif.notifications_user_id_column', 'notifiable_id');

DB::table('notifications')
->orderBy('id', 'asc')
->orderBy('id')
->select('*')
->where( \config('digestif.read_column'), '=', null)
->where('digested_at', '=', null)
->chunk(100, function ($notifications) use ($user_column) {

Expand Down
11 changes: 11 additions & 0 deletions src/config/digestif.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,15 @@
*/
'notifications_user_id_column' => 'notifiable_id',


/*
|--------------------------------------------------------------------------
| Notifications read column
|--------------------------------------------------------------------------
|
| Please tell us what column stores the read toggle for notifications
|
*/
'read_column' => 'read_at',

];

0 comments on commit 2d1fd84

Please sign in to comment.