Passed
Push — master ( c72b97...8ec7bf )
by Yassine
05:28
created

MailablesController::sendTest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 10
rs 10
1
<?php
2
3
namespace Qoraiche\MailEclipse\Http\Controllers;
4
5
use Illuminate\Contracts\Mail\Mailable;
6
use Illuminate\Http\Request;
7
use Illuminate\Routing\Controller;
8
use Illuminate\Support\Facades\App;
9
use Qoraiche\MailEclipse\MailEclipse;
10
11
class MailablesController extends Controller
12
{
13
    public function __construct()
14
    {
15
        abort_unless(
16
            App::environment(config('maileclipse.allowed_environments', ['local'])),
0 ignored issues
show
Bug introduced by
It seems like Illuminate\Support\Facad...ents', array('local'))) can also be of type string; however, parameter $boolean of abort_unless() does only seem to accept boolean, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

16
            /** @scrutinizer ignore-type */ App::environment(config('maileclipse.allowed_environments', ['local'])),
Loading history...
17
            403
18
      );
19
    }
20
21
    public function toMailablesList()
22
    {
23
        return redirect()->route('mailableList');
24
    }
25
26
    public function index()
27
    {
28
        $mailables = MailEclipse::getMailables();
29
30
        $mailables = (null !== $mailables) ? $mailables->sortBy('name') : collect([]);
0 ignored issues
show
introduced by
The condition null !== $mailables is always true.
Loading history...
31
32
        return view(MailEclipse::$view_namespace.'::sections.mailables', compact('mailables'));
33
    }
34
35
    public function createMailable(Request $request)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

35
    public function createMailable(/** @scrutinizer ignore-unused */ Request $request)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
36
    {
37
        return view(MailEclipse::$view_namespace.'::createmailable');
38
    }
39
40
    public function generateMailable(Request $request)
41
    {
42
        return MailEclipse::generateMailable($request);
43
    }
44
45
    public function viewMailable($name)
46
    {
47
        $mailable = MailEclipse::getMailable('name', $name);
48
49
        if ($mailable->isEmpty()) {
50
            return redirect()->route('mailableList');
51
        }
52
53
        $resource = $mailable->first();
54
55
        return view(MailEclipse::$view_namespace.'::sections.view-mailable')->with(compact('resource'));
56
    }
57
58
    public function editMailable($name)
59
    {
60
        $templateData = MailEclipse::getMailableTemplateData($name);
61
62
        if (! $templateData) {
63
            return redirect()->route('viewMailable', ['name' => $name]);
64
        }
65
66
        return view(MailEclipse::$view_namespace.'::sections.edit-mailable-template', compact('templateData', 'name'));
67
    }
68
69
    public function templatePreviewError()
70
    {
71
        return view(MailEclipse::$view_namespace.'::previewerror');
72
    }
73
74
    public function parseTemplate(Request $request)
75
    {
76
        $template = $request->has('template') ? $request->template : false;
77
78
        $viewPath = $request->has('template') ? $request->viewpath : base64_decode($request->viewpath);
79
80
        // ref https://regexr.com/4dflu
81
        $bladeRenderable = preg_replace('/((?!{{.*?-)(&gt;)(?=.*?}}))/', '>', $request->markdown);
82
83
        if (MailEclipse::markdownedTemplateToView(true, $bladeRenderable, $viewPath, $template)) {
84
            return response()->json([
85
                'status' => 'ok',
86
            ]);
87
        }
88
89
        return response()->json([
90
            'status' => 'error',
91
        ]);
92
    }
93
94
    public function previewMarkdownView(Request $request)
95
    {
96
        return MailEclipse::previewMarkdownViewContent(false, $request->markdown, $request->name, false, $request->namespace);
97
    }
98
99
    public function previewMailable($name)
100
    {
101
        return MailEclipse::renderMailable($name);
102
    }
103
104
    public function delete(Request $request)
105
    {
106
        $mailableFile = config('maileclipse.mailables_dir').'/'.$request->mailablename.'.php';
107
108
        if (file_exists($mailableFile)) {
109
            unlink($mailableFile);
110
111
            return response()->json([
112
                'status' => 'ok',
113
            ]);
114
        }
115
116
        return response()->json([
117
            'status' => 'error',
118
        ]);
119
    }
120
121
    public function sendTest(Request $request)
122
    {
123
        $validatedData = $request->validate([
0 ignored issues
show
Unused Code introduced by
The assignment to $validatedData is dead and can be removed.
Loading history...
124
            'email' => 'email|nullable',
125
            'name' => 'string|required'
126
        ]);
127
128
        $email = $request->get('email') ?? config('maileclipse.test_mail');
129
130
        MailEclipse::sendTest($request->get('name'), $email);
0 ignored issues
show
Bug introduced by
It seems like $request->get('name') can also be of type null; however, parameter $name of Qoraiche\MailEclipse\MailEclipse::sendTest() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

130
        MailEclipse::sendTest(/** @scrutinizer ignore-type */ $request->get('name'), $email);
Loading history...
131
    }
132
}
133