in app/Http/Controllers/Contacts/ConversationsController.php [147:193]
public function update(Request $request, Contact $contact, Conversation $conversation)
{
$data = $this->validateAndGetDatas($request);
if ($data instanceof \Illuminate\Contracts\Validation\Validator) {
return back()
->withInput()
->withErrors($data);
}
$date = $data['happened_at'];
$data['conversation_id'] = $conversation->id;
// update the conversation
try {
$conversation = app(UpdateConversation::class)->execute($data);
} catch (ValidationException $e) {
return back()
->withInput()
->withErrors($e->validator);
} catch (\Exception $e) {
return back()
->withInput()
->withErrors(trans('app.error_save'));
}
// delete all current messages
foreach ($conversation->messages as $message) {
$data = [
'account_id' => auth()->user()->account_id,
'conversation_id' => $conversation->id,
'message_id' => $message->id,
];
app(DestroyMessage::class)->execute($data);
}
// and create all new ones
$result = $this->updateMessages($request, $conversation, $date);
if ($result !== true) {
return back()
->withInput()
->withErrors($result);
}
return redirect()->route('people.show', $contact)
->with('success', trans('people.conversation_edit_success'));
}