diff --git a/app/Providers/ExportJobServiceProvider.php b/app/Providers/ExportJobServiceProvider.php new file mode 100644 index 0000000000..b63d2b8819 --- /dev/null +++ b/app/Providers/ExportJobServiceProvider.php @@ -0,0 +1,50 @@ +app->bind( + 'FireflyIII\Repositories\ExportJob\ExportJobRepositoryInterface', + function (Application $app, array $arguments) { + if (!isset($arguments[0]) && Auth::check()) { + return app('FireflyIII\Repositories\ExportJob\ExportJobRepository', [Auth::user()]); + } else { + if (!isset($arguments[0]) && !Auth::check()) { + throw new FireflyException('There is no user present.'); + } + } + + return app('FireflyIII\Repositories\ExportJob\ExportJobRepository', $arguments); + } + ); + } + + /** + * Register the application services. + * + * @return void + */ + public function register() + { + // + } +} diff --git a/app/Providers/FireflyServiceProvider.php b/app/Providers/FireflyServiceProvider.php index f2da0c3579..3f9ea8c009 100644 --- a/app/Providers/FireflyServiceProvider.php +++ b/app/Providers/FireflyServiceProvider.php @@ -90,7 +90,6 @@ class FireflyServiceProvider extends ServiceProvider $this->app->bind('FireflyIII\Repositories\Tag\TagRepositoryInterface', 'FireflyIII\Repositories\Tag\TagRepository'); $this->app->bind('FireflyIII\Repositories\Rule\RuleRepositoryInterface', 'FireflyIII\Repositories\Rule\RuleRepository'); $this->app->bind('FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface', 'FireflyIII\Repositories\RuleGroup\RuleGroupRepository'); - $this->app->bind('FireflyIII\Repositories\ExportJob\ExportJobRepositoryInterface', 'FireflyIII\Repositories\ExportJob\ExportJobRepository'); $this->app->bind('FireflyIII\Support\Search\SearchInterface', 'FireflyIII\Support\Search\Search'); // CSV import diff --git a/app/Repositories/ExportJob/ExportJobRepository.php b/app/Repositories/ExportJob/ExportJobRepository.php index e230ac2de2..625323b163 100644 --- a/app/Repositories/ExportJob/ExportJobRepository.php +++ b/app/Repositories/ExportJob/ExportJobRepository.php @@ -10,10 +10,11 @@ declare(strict_types = 1); namespace FireflyIII\Repositories\ExportJob; -use Auth; use Carbon\Carbon; use FireflyIII\Models\ExportJob; +use FireflyIII\User; use Illuminate\Support\Str; +use Log; /** * Class ExportJobRepository @@ -22,6 +23,19 @@ use Illuminate\Support\Str; */ class ExportJobRepository implements ExportJobRepositoryInterface { + /** @var User */ + private $user; + + /** + * BillRepository constructor. + * + * @param User $user + */ + public function __construct(User $user) + { + Log::debug('Constructed bill repository for user #' . $user->id . ' (' . $user->email . ')'); + $this->user = $user; + } /** * @return bool @@ -57,7 +71,7 @@ class ExportJobRepository implements ExportJobRepositoryInterface public function create() { $exportJob = new ExportJob; - $exportJob->user()->associate(Auth::user()); + $exportJob->user()->associate($this->user); /* * In theory this random string could give db error. */ @@ -75,7 +89,7 @@ class ExportJobRepository implements ExportJobRepositoryInterface */ public function findByKey(string $key) { - return Auth::user()->exportJobs()->where('key', $key)->first(); + return $this->user->exportJobs()->where('key', $key)->first(); } }