Is now capable of updating transactions over the API.

This commit is contained in:
James Cole
2019-04-06 08:10:50 +02:00
parent b692cccdfb
commit c519b4d0df
36 changed files with 1840 additions and 709 deletions

View File

@@ -27,8 +27,12 @@ namespace FireflyIII\Repositories\TransactionGroup;
use Carbon\Carbon;
use DB;
use Exception;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Factory\TransactionGroupFactory;
use FireflyIII\Models\Note;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Services\Internal\Update\GroupUpdateService;
use FireflyIII\Support\NullArrayObject;
/**
@@ -36,6 +40,8 @@ use FireflyIII\Support\NullArrayObject;
*/
class TransactionGroupRepository implements TransactionGroupRepositoryInterface
{
private $user;
/**
* Constructor.
*/
@@ -61,6 +67,7 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface
::table('journal_meta')
->where('transaction_journal_id', $journalId)
->whereIn('name', $fields)
->whereNull('deleted_at')
->get(['name', 'data']);
$return = [];
@@ -85,6 +92,7 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface
::table('journal_meta')
->where('transaction_journal_id', $journalId)
->whereIn('name', $fields)
->whereNull('deleted_at')
->get(['name', 'data']);
$return = [];
@@ -133,4 +141,45 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface
return $result->pluck('tag')->toArray();
}
/**
* @param mixed $user
*/
public function setUser($user): void
{
$this->user = $user;
}
/**
* @param array $data
*
* @return TransactionGroup
*
* @throws FireflyException
*/
public function store(array $data): TransactionGroup
{
/** @var TransactionGroupFactory $factory */
$factory = app(TransactionGroupFactory::class);
$factory->setUser($this->user);
return $factory->create($data);
}
/**
* @param TransactionGroup $transactionGroup
* @param array $data
*
* @return TransactionGroup
*
* @throws FireflyException
*/
public function update(TransactionGroup $transactionGroup, array $data): TransactionGroup
{
/** @var GroupUpdateService $service */
$service = app(GroupUpdateService::class);
$updatedGroup = $service->update($transactionGroup, $data);
return $updatedGroup;
}
}

View File

@@ -23,7 +23,10 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\TransactionGroup;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Support\NullArrayObject;
use FireflyIII\User;
/**
* Interface TransactionGroupRepositoryInterface
@@ -67,4 +70,32 @@ interface TransactionGroupRepositoryInterface
* @return array
*/
public function getTags(int $journalId): array;
/**
* Set the user.
*
* @param User $user
*/
public function setUser(User $user): void;
/**
* Create a new transaction group.
*
* @param array $data
*
* @return TransactionGroup
* @throws FireflyException
*/
public function store(array $data): TransactionGroup;
/**
* Update an existing transaction group.
*
* @param TransactionGroup $transactionGroup
* @param array $data
*
* @return TransactionGroup
*/
public function update(TransactionGroup $transactionGroup, array $data): TransactionGroup;
}