/**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     parent::boot($router);
     //		$router->model('accounts', Account::class);
     Route::bind('accounts', function ($id) {
         return Account::forCurrentUser()->findOrFail($id);
     });
     Route::bind('budgets', function ($id) {
         return Budget::forCurrentUser()->findOrFail($id);
     });
     Route::bind('transactions', function ($id) {
         return Transaction::forCurrentUser()->findOrFail($id);
     });
     Route::bind('favouriteTransactions', function ($id) {
         return FavouriteTransaction::forCurrentUser()->findOrFail($id);
     });
     Route::bind('savedFilters', function ($id) {
         return SavedFilter::forCurrentUser()->findOrFail($id);
     });
 }
 /**
  * Todo: I could also test switching from type transfer to another type, that the fromAccount and toAccount keys are removed.
  * @test
  * @return void
  */
 public function it_can_update_a_favourite_transfer_transaction()
 {
     DB::beginTransaction();
     $this->logInUser();
     $favourite = FavouriteTransaction::forCurrentUser()->first();
     $response = $this->call('PUT', '/api/favouriteTransactions/' . $favourite->id, ['name' => 'koala', 'type' => 'transfer', 'description' => 'kangaroo', 'merchant' => 'wombat', 'total' => 5, 'from_account_id' => 2, 'to_account_id' => 1, 'budget_ids' => [2, 3]]);
     $content = json_decode($response->getContent(), true);
     //dd($content);
     $this->checkFavouriteTransactionKeysExist($content);
     $this->assertEquals('koala', $content['name']);
     $this->assertEquals('transfer', $content['type']);
     $this->assertEquals('kangaroo', $content['description']);
     $this->assertEquals('wombat', $content['merchant']);
     $this->assertEquals('5', $content['total']);
     $this->assertArrayNotHasKey('account', $content);
     $this->assertEquals(2, $content['fromAccount']['id']);
     $this->assertEquals(1, $content['toAccount']['id']);
     $this->assertEquals(2, $content['budgets'][0]['id']);
     $this->assertEquals(3, $content['budgets'][1]['id']);
     $this->assertEquals(200, $response->getStatusCode());
     DB::rollBack();
 }
 /**
  * GET /api/favouriteTransactions
  * @return Response
  */
 public function index()
 {
     $favourites = FavouriteTransaction::forCurrentUser()->orderBy('name', 'asc')->get();
     $favourites = $this->transform($this->createCollection($favourites, new FavouriteTransactionTransformer()))['data'];
     return response($favourites, Response::HTTP_OK);
 }