Completed
Push — master ( 8a32e8...44da47 )
by Fèvre
21s queued 14s
created

NewsletterController::store()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 7
rs 10
1
<?php
2
namespace Xetaravel\Http\Controllers;
3
4
use Illuminate\Http\RedirectResponse;
5
use Illuminate\Http\Request ;
6
use Xetaravel\Models\Newsletter;
7
use Xetaravel\Models\Repositories\NewsletterRepository;
8
use Xetaravel\Models\Validators\NewsletterValidator;
9
10
class NewsletterController extends Controller
11
{
12
    /**
13
     * Subcribe to the Newsletter
14
     *
15
     * @param \Illuminate\Http\Request $request The request object.
16
     *
17
     * @return \Illuminate\Http\Response
18
     */
19
    public function store(Request $request): RedirectResponse
20
    {
21
        NewsletterValidator::create($request->all())->validate();
22
        NewsletterRepository::create($request->all());
23
24
        return back()
25
            ->with('success', 'You have successfuly subscribed to our Newsletter !');
26
    }
27
28
    /**
29
     * Unsubcribe to the Newsletter.
30
     *
31
     * @param string $email The email that should be used to unsubscribe to the Newsletter.
32
     *
33
     * @return \Illuminate\Http\RedirectResponse
34
     */
35
    public function delete(string $email): RedirectResponse
36
    {
37
        $newsletter = Newsletter::where('email', $email)->first();
38
39
        if ($newsletter && $newsletter->delete()) {
40
            return back()
41
                ->with('success', 'You have successfully unsubscribed to the Newsletter !');
42
        }
43
44
        return back()
45
            ->with('danger', 'An error occurred while unsubscribed to the Newsletter !');
46
    }
47
}
48