/** * POST /api/favouriteTransactions * @param Request $request * @return Response */ public function store(Request $request) { $favourite = new FavouriteTransaction($request->only(['name', 'type', 'description', 'merchant', 'total'])); $favourite->user()->associate(Auth::user()); $favourite->account()->associate(Account::find($request->get('account_id'))); $favourite->fromAccount()->associate(Account::find($request->get('from_account_id'))); $favourite->toAccount()->associate(Account::find($request->get('to_account_id'))); $favourite->save(); foreach ($request->get('budget_ids') as $id) { $favourite->budgets()->attach($id); } $favourite = $this->transform($this->createItem($favourite, new FavouriteTransactionTransformer()))['data']; return response($favourite, Response::HTTP_CREATED); }
/** * */ public function run() { $users = User::all(); foreach ($users as $user) { foreach ($this->favourites as $favourite) { $newFavourite = new FavouriteTransaction(['name' => $favourite['name'], 'type' => $favourite['type'], 'description' => $favourite['description'], 'merchant' => $favourite['merchant'], 'total' => $favourite['total']]); $newFavourite->user()->associate($user); if ($favourite['type'] === 'transfer') { $newFavourite->fromAccount()->associate(Account::where('user_id', $user->id)->where('name', $favourite['fromAccount'])->first()); $newFavourite->toAccount()->associate(Account::where('user_id', $user->id)->where('name', $favourite['toAccount'])->first()); } else { $newFavourite->account()->associate(Account::where('user_id', $user->id)->where('name', $favourite['account'])->first()); } $newFavourite->save(); $budgetIds = []; foreach ($favourite['budgets'] as $budgetName) { $budgetIds[] = Budget::where('user_id', $user->id)->where('name', $budgetName)->pluck('id'); } $newFavourite->budgets()->attach($budgetIds); } } }