From 999bb5ed49c20ef000867c3495de980a662e6f91 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 16 Feb 2018 16:44:21 +0100 Subject: [PATCH] Add new transaction type repository --- app/Providers/FireflyServiceProvider.php | 3 ++ .../TransactionTypeRepository.php | 44 +++++++++++++++++++ .../TransactionTypeRepositoryInterface.php | 44 +++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 app/Repositories/TransactionType/TransactionTypeRepository.php create mode 100644 app/Repositories/TransactionType/TransactionTypeRepositoryInterface.php diff --git a/app/Providers/FireflyServiceProvider.php b/app/Providers/FireflyServiceProvider.php index 5e3c5ccd2a..f04fad6fa2 100644 --- a/app/Providers/FireflyServiceProvider.php +++ b/app/Providers/FireflyServiceProvider.php @@ -42,6 +42,8 @@ use FireflyIII\Helpers\Report\PopupReport; use FireflyIII\Helpers\Report\PopupReportInterface; use FireflyIII\Helpers\Report\ReportHelper; use FireflyIII\Helpers\Report\ReportHelperInterface; +use FireflyIII\Repositories\TransactionType\TransactionTypeRepository; +use FireflyIII\Repositories\TransactionType\TransactionTypeRepositoryInterface; use FireflyIII\Repositories\User\UserRepository; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Services\Password\PwndVerifier; @@ -162,6 +164,7 @@ class FireflyServiceProvider extends ServiceProvider // export: $this->app->bind(ProcessorInterface::class, ExpandedProcessor::class); $this->app->bind(UserRepositoryInterface::class, UserRepository::class); + $this->app->bind(TransactionTypeRepositoryInterface::class, TransactionTypeRepository::class); $this->app->bind(AttachmentHelperInterface::class, AttachmentHelper::class); // more generators: diff --git a/app/Repositories/TransactionType/TransactionTypeRepository.php b/app/Repositories/TransactionType/TransactionTypeRepository.php new file mode 100644 index 0000000000..a2538c453f --- /dev/null +++ b/app/Repositories/TransactionType/TransactionTypeRepository.php @@ -0,0 +1,44 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Repositories\TransactionType; +use FireflyIII\Models\TransactionType; + +/** + * Class TransactionTypeRepository + */ +class TransactionTypeRepository implements TransactionTypeRepositoryInterface +{ + + /** + * Find a transaction type or return NULL. + * + * @param string $type + * + * @return TransactionType|null + */ + public function findByType(string $type): ?TransactionType + { + return TransactionType::where('type', ucfirst($type))->first(); + } +} \ No newline at end of file diff --git a/app/Repositories/TransactionType/TransactionTypeRepositoryInterface.php b/app/Repositories/TransactionType/TransactionTypeRepositoryInterface.php new file mode 100644 index 0000000000..213c044f2f --- /dev/null +++ b/app/Repositories/TransactionType/TransactionTypeRepositoryInterface.php @@ -0,0 +1,44 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Repositories\TransactionType; + +use FireflyIII\Models\TransactionType; + +/** + * Interface TransactionTypeRepositoryInterface + * + * @package FireflyIII\Repositories\TransactionType + */ +interface TransactionTypeRepositoryInterface +{ + /** + * Find a transaction type or return NULL. + * + * @param string $type + * + * @return TransactionType|null + */ + public function findByType(string $type): ?TransactionType; + +} \ No newline at end of file