Completed
Push — master ( b015a1...0e1003 )
by Abdelrahman
49:45
created

NotificationMiddleware::handle()   B

Complexity

Conditions 6
Paths 8

Size

Total Lines 24
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 6
eloc 12
nc 8
nop 2
dl 0
loc 24
rs 8.5125
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * NOTICE OF LICENSE
5
 *
6
 * Part of the Cortex Foundation Module.
7
 *
8
 * This source file is subject to The MIT License (MIT)
9
 * that is bundled with this package in the LICENSE file.
10
 *
11
 * Package: Cortex Foundation Module
12
 * License: The MIT License (MIT)
13
 * Link:    https://rinvex.com
14
 */
15
16
declare(strict_types=1);
17
18
namespace Cortex\Foundation\Http\Middleware;
19
20
use Closure;
21
use Krucas\Notification\Middleware\NotificationMiddleware as BaseNotificationMiddleware;
22
23
class NotificationMiddleware extends BaseNotificationMiddleware
24
{
25
    /**
26
     * Handle an incoming request.
27
     *
28
     * @param \Illuminate\Http\Request $request
29
     * @param \Closure                 $next
30
     *
31
     * @return mixed
32
     */
33
    public function handle($request, Closure $next)
34
    {
35
        $containers = $this->session->get($this->key, []);
36
37
        if (count($containers) > 0) {
38
            foreach ($containers as $name => $messages) {
39
                /** @var \Krucas\Notification\Message $message */
40
                foreach ($messages as $message) {
41
                    $this->notification->container($name)->add($message->getType(), $message, false);
42
                }
43
            }
44
        }
45
46
        foreach (config('notification.default_types') as $type) {
47
            if ($request->session()->has($type)) {
48
                $message = $request->session()->get($type);
49
                $this->notification->container(null)->add($type, $message, false);
50
            }
51
        }
52
53
        $this->session->forget($this->key);
54
55
        return $next($request);
56
    }
57
}
58