Skip to content

Commit 5816dbc

Browse files
committed
Fix an error that occurred when no mail was previously sent (#10)
1 parent 6628545 commit 5816dbc

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

Helpers/Changes.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use DateInterval;
66
use DateTimeImmutable;
77
use EvanG\Modules\MailSystem\Settings;
8+
use Exception;
89
use Fisharebest\Webtrees\Registry;
910
use Fisharebest\Webtrees\Services\UserService;
1011
use Fisharebest\Webtrees\Tree;
@@ -23,7 +24,7 @@ public function __construct()
2324
}
2425

2526
/**
26-
* @throws \Exception
27+
* @throws Exception
2728
*/
2829
public function get(Settings $args, Tree $tree): Collection
2930
{

Helpers/News.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,32 @@
22

33
namespace EvanG\Modules\MailSystem\Helpers;
44

5+
use DateInterval;
56
use DateTime;
67
use DateTimeInterface;
78
use DateTimeZone;
89
use EvanG\Modules\MailSystem\Settings;
10+
use Exception;
911
use Fisharebest\Webtrees\Tree;
10-
use Illuminate\Support\Collection;
1112
use Illuminate\Database\Capsule\Manager as DB;
13+
use Illuminate\Support\Collection;
1214
use stdClass;
1315

1416
class News implements DataGetter
1517
{
18+
/**
19+
* @throws Exception
20+
*/
1621
public function get(Settings $args, Tree $tree): Collection
1722
{
23+
$minDate = $args->getLastSend() ?? $args->getThisSend()->sub(new DateInterval('P' . $args->getDays() . 'D'));
1824
return DB::table('news')
1925
->where('gedcom_id', '=', $tree->id())
20-
->where('updated', '>', $args->getLastSend()->format("Y-m-d H:i:s"))
26+
->where('updated', '>', $minDate->format("Y-m-d H:i:s"))
2127
->where('updated', '<', $args->getThisSend()->format("Y-m-d H:i:s"))
2228
->orderBy('updated')
2329
->get()
24-
->map(function (stdClass $row){
30+
->map(function (stdClass $row) {
2531
return [
2632
"id" => $row->news_id,
2733
"date" => (new DateTime($row->updated, new DateTimeZone("UTC")))->format(DateTimeInterface::ATOM),

0 commit comments

Comments
 (0)