mirror of
https://gh.wpcy.net/https://github.com/FreeScout-shop/delete-notes.git
synced 2026-04-17 05:23:02 +08:00
60 lines
1.9 KiB
PHP
60 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Modules\DeleteNotes\Http\Controllers;
|
|
|
|
use App\Thread;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\DeleteNotes\Providers\DeleteNotesServiceProvider;
|
|
|
|
class DeleteNotesController extends Controller
|
|
{
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
* @return Response
|
|
*/
|
|
public function delete(Request $request)
|
|
{
|
|
$response = [
|
|
'status' => 'error',
|
|
'msg' => 'Unknown error', // this is error message
|
|
];
|
|
|
|
$thread = Thread::find($request->thread_id ?? 0);
|
|
if ($thread) {
|
|
$user = auth()->user();
|
|
|
|
if (DeleteNotesServiceProvider::canDeleteNote($thread, $user)) {
|
|
if (!$user->isAdmin()){
|
|
Thread::create($thread->conversation, Thread::TYPE_LINEITEM, '', [
|
|
'user_id' => $user->id,
|
|
'created_by_customer_id' => $thread->conversation->customer_id,
|
|
'action_type' => DeleteNotesServiceProvider::ACTION_TYPE_DELETE,
|
|
'source_via' => Thread::PERSON_USER,
|
|
'source_type' => Thread::SOURCE_TYPE_WEB,
|
|
]);
|
|
}
|
|
|
|
$thread->delete();
|
|
|
|
$thread->conversation->setPreview();
|
|
$thread->conversation->save();
|
|
|
|
$response['status'] = 'success';
|
|
$response['msg_success'] = __('Deleted note');
|
|
} else {
|
|
$response['msg'] = __('Not enough permissions');
|
|
}
|
|
} else {
|
|
$response['msg'] = __('Thread not found');
|
|
}
|
|
|
|
|
|
if ($response['status'] == 'error' && empty($response['msg'])) {
|
|
$response['msg'] = __('Unknown error occurred');
|
|
}
|
|
|
|
return \Response::json($response);
|
|
}
|
|
}
|