|
2 | 2 |
|
3 | 3 | namespace App\Http\Controllers\Api; |
4 | 4 |
|
| 5 | +use App\Requester; |
5 | 6 | use App\Ticket; |
6 | 7 | use Illuminate\Http\Response; |
| 8 | +use Illuminate\Support\Facades\App; |
7 | 9 |
|
8 | 10 | class CommentsController extends ApiController |
9 | 11 | { |
10 | 12 | public function store(Ticket $ticket) |
11 | 13 | { |
12 | | - $comment = $ticket->addComment(null, strip_tags(request('body')), request('new_status')); |
| 14 | + App::setLocale(request('language')); |
| 15 | + |
| 16 | + $ticketRequester = Requester::findOrFail($ticket->requester_id); |
| 17 | + try { |
| 18 | + Requester::validateTicketComment(request('requester'), $ticketRequester); |
| 19 | + } catch (\Exception $e) { |
| 20 | + return $this->respond(['id' => null, 'message' => $e->getMessage()], Response::HTTP_BAD_REQUEST); |
| 21 | + } |
| 22 | + |
| 23 | + $comment = $ticket->addComment(null, strip_tags(request('body')), request('new_status')); |
| 24 | + |
| 25 | + if (request('new_status') == $ticket::STATUS_SOLVED) { |
| 26 | + return $this->respond(['id' => null, 'message' => __('validation.solvedTicket')], Response::HTTP_CREATED); |
| 27 | + } |
| 28 | + |
13 | 29 | if (! $comment) { |
14 | | - return $this->respond(['id' => null, 'message' => 'Can not create a comment with empty body'], Response::HTTP_OK); |
| 30 | + return $this->respond(['id' => null, 'message' => __('validation.emptyBodyComment')], Response::HTTP_BAD_REQUEST); |
15 | 31 | } |
16 | 32 |
|
17 | | - return $this->respond(['id' => $comment->id], Response::HTTP_CREATED); |
| 33 | + return $this->respond(['id' => $comment->id, 'message' => __('validation.commentCreated')], Response::HTTP_CREATED); |
18 | 34 | } |
19 | 35 | } |
0 commit comments