-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAuditLogController.php
109 lines (93 loc) · 3.03 KB
/
AuditLogController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
namespace Botble\AuditLog\Http\Controllers;
use Botble\AuditLog\Repositories\Interfaces\AuditLogInterface;
use Botble\AuditLog\Tables\AuditLogTable;
use Botble\Base\Events\DeletedContentEvent;
use Botble\Base\Http\Controllers\BaseController;
use Botble\Base\Http\Responses\BaseHttpResponse;
use Botble\Base\Traits\HasDeleteManyItemsTrait;
use Exception;
use Illuminate\Contracts\View\Factory;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Throwable;
class AuditLogController extends BaseController
{
use HasDeleteManyItemsTrait;
/**
* @var AuditLogInterface
*/
protected $auditLogRepository;
/**
* AuditLogController constructor.
* @param AuditLogInterface $auditLogRepository
*/
public function __construct(AuditLogInterface $auditLogRepository)
{
$this->auditLogRepository = $auditLogRepository;
}
/**
* @param BaseHttpResponse $response
* @return BaseHttpResponse
* @throws Throwable
*/
public function getWidgetActivities(BaseHttpResponse $response)
{
$limit = request()->input('paginate', 10);
$histories = $this->auditLogRepository
->getModel()
->with('user')
->orderBy('created_at', 'desc')
->paginate($limit);
return $response
->setData(view('plugins/audit-log::widgets.activities', compact('histories', 'limit'))->render());
}
/**
* @param AuditLogTable $dataTable
* @return Factory|View
* @throws Throwable
*/
public function index(AuditLogTable $dataTable)
{
page_title()->setTitle(trans('plugins/audit-log::history.name'));
return $dataTable->renderTable();
}
/**
* @param Request $request
* @param int $id
* @param BaseHttpResponse $response
* @return BaseHttpResponse
*/
public function destroy(Request $request, $id, BaseHttpResponse $response)
{
try {
$log = $this->auditLogRepository->findOrFail($id);
$this->auditLogRepository->delete($log);
event(new DeletedContentEvent(AUDIT_LOG_MODULE_SCREEN_NAME, $request, $log));
return $response->setMessage(trans('core/base::notices.delete_success_message'));
} catch (Exception $ex) {
return $response
->setError()
->setMessage($ex->getMessage());
}
}
/**
* @param Request $request
* @param BaseHttpResponse $response
* @return BaseHttpResponse
* @throws Exception
*/
public function deletes(Request $request, BaseHttpResponse $response)
{
return $this->executeDeleteItems($request, $response, $this->auditLogRepository, AUDIT_LOG_MODULE_SCREEN_NAME);
}
/**
* @param BaseHttpResponse $response
* @return BaseHttpResponse
*/
public function deleteAll(BaseHttpResponse $response)
{
$this->auditLogRepository->getModel()->truncate();
return $response->setMessage(trans('core/base::notices.delete_success_message'));
}
}