Skip to content

Commit 1893e4c

Browse files
committed
start create Websocket connection and Queue jobs to make orders, rebase on React
1 parent 88c699a commit 1893e4c

File tree

20 files changed

+29306
-298
lines changed

20 files changed

+29306
-298
lines changed

app/Http/Controllers/AdministrationController.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use App\News;
66
use App\Post;
7+
use Illuminate\Http\Request;
78

89
class AdministrationController extends Controller
910
{
@@ -25,4 +26,15 @@ public function news() {
2526
$news = News::latest()->get();
2627
return view('/admin.news', compact('news'));
2728
}
29+
30+
public function orders() {
31+
return view('/admin.orders');
32+
}
33+
34+
public function ordersStore(Request $request) {
35+
36+
\App\Jobs\GenerateResultingOrder::dispatch($request->all());
37+
38+
return back();
39+
}
2840
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
3+
namespace App\Jobs;
4+
5+
use App\Comment;
6+
use App\News;
7+
use App\Post;
8+
use App\Tag;
9+
use Illuminate\Bus\Queueable;
10+
use Illuminate\Contracts\Queue\ShouldQueue;
11+
use Illuminate\Foundation\Bus\Dispatchable;
12+
use Illuminate\Queue\InteractsWithQueue;
13+
use Illuminate\Queue\SerializesModels;
14+
use Illuminate\Support\Facades\Mail;
15+
use Throwable;
16+
17+
class GenerateResultingOrder implements ShouldQueue
18+
{
19+
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
20+
21+
protected $requestData;
22+
23+
public function __construct($requestData)
24+
{
25+
$this->requestData = $requestData;
26+
}
27+
28+
public function handle()
29+
{
30+
$data = [];
31+
32+
if ($this->requestData) {
33+
if (array_key_exists ( 'news' , $this->requestData )) {
34+
$data['news'] = 'Новостей: ' . News::count() . PHP_EOL;
35+
}
36+
37+
if (array_key_exists ( 'posts' , $this->requestData )) {
38+
$data['posts'] = 'Статей: ' . Post::count() . PHP_EOL;
39+
}
40+
41+
if (array_key_exists ( 'comments' , $this->requestData )) {
42+
$data['comments'] = 'Комментариев: ' . Comment::count() . PHP_EOL;
43+
}
44+
45+
if (array_key_exists ( 'tags' , $this->requestData )) {
46+
$data['tags'] = 'Тегов: ' . Tag::count() . PHP_EOL;
47+
}
48+
49+
if (array_key_exists ( 'users' , $this->requestData )) {
50+
$data['users'] = 'Пользователей: ' . News::count() . PHP_EOL;
51+
}
52+
}
53+
54+
Mail::to(auth()->user()->email)->send(
55+
new \App\Mail\ResultingOrderSend($data)
56+
);
57+
}
58+
59+
public function failed(Throwable $exception)
60+
{
61+
// Send user notification of failure, etc...
62+
}
63+
}

app/Mail/ResultingOrderSend.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace App\Mail;
4+
5+
use Illuminate\Bus\Queueable;
6+
use Illuminate\Contracts\Queue\ShouldQueue;
7+
use Illuminate\Mail\Mailable;
8+
use Illuminate\Queue\SerializesModels;
9+
use phpDocumentor\Reflection\Types\This;
10+
11+
class ResultingOrderSend extends Mailable
12+
{
13+
use Queueable, SerializesModels;
14+
15+
protected $data;
16+
17+
public function __construct($data)
18+
{
19+
$this->data = $data;
20+
}
21+
22+
/**
23+
* Build the message.
24+
*
25+
* @return $this
26+
*/
27+
public function build()
28+
{
29+
return $this->markdown('mail.order-send', ['data' => $this->data]);
30+
}
31+
}

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"laravel/helpers": "^1.3",
1717
"laravel/telescope": "^4.0",
1818
"laravel/tinker": "^2.0",
19-
"laravel/ui": "^2.1"
19+
"laravel/ui": "^2.1",
20+
"predis/predis": "^1.1"
2021
},
2122
"require-dev": {
2223
"facade/ignition": "^2.0",

0 commit comments

Comments
 (0)