Better handling of errors.

This commit is contained in:
James Cole
2020-03-12 05:06:42 +01:00
parent d92b741088
commit 5e8d94d16a
5 changed files with 141 additions and 54 deletions

View File

@@ -29,6 +29,7 @@ use FireflyIII\Api\V1\Requests\TransactionUpdateRequest;
use FireflyIII\Events\StoredTransactionGroup;
use FireflyIII\Events\UpdatedTransactionGroup;
use FireflyIII\Exceptions\DuplicateTransactionException;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
@@ -294,6 +295,19 @@ class TransactionController extends Controller
],
];
return response()->json($response, 422);
} catch(FireflyException $e) {
Log::warning('Caught an exception. Return error message.');
Log::error($e->getMessage());
// return bad validation message.
// TODO use Laravel's internal validation thing to do this.
$response = [
'message' => 'The given data was invalid.',
'errors' => [
'transactions.0.description' => [sprintf('Internal exception: %s',$e->getMessage())],
],
];
return response()->json($response, 422);
}
app('preferences')->mark();