/**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     try {
         $this->accountService->validateInput($request->all(), true, $id);
     } catch (\Exception $e) {
         abort(422);
     }
     $response = $this->accountService->update($request, $id);
     return response()->json($response);
 }
 private function getDestination($input)
 {
     $destination = null;
     switch ($input->source_type) {
         case 'credit_card':
             $destination = $this->statement_service->get($input->source_id, $input->date);
             break;
         case 'account':
             $destination = $this->account_service->get($input->source_id);
             break;
     }
     return $destination;
 }
 private function getSource($input)
 {
     $source = null;
     $amount = 0;
     if ($input->type == 'simple') {
         $amount = $input->amount;
     } else {
         foreach ($input->items as $item) {
             $amount += $item['amount'];
         }
     }
     switch ($input->source_type) {
         case 'credit_card':
             $source = $this->credit_card_purchase_service->get($input->source_id, $input->date, $amount, $input->number_installments);
             break;
         case 'account':
             $source = $this->account_service->get($input->source_id);
             break;
     }
     return $source;
 }