feat:adds user option to sync and refresh commands
This commit is contained in:
@@ -14,7 +14,8 @@ class RefreshDividendData extends Command
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'refresh:dividend-data
|
||||
{--force : Refresh all holdings}';
|
||||
{--force : Refresh all holdings}
|
||||
{--user= : Limit refresh to user\'s holdings}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -46,6 +47,10 @@ class RefreshDividendData extends Command
|
||||
$holdings->where('quantity', '>', 0);
|
||||
}
|
||||
|
||||
if ($this->option('user')) {
|
||||
$holdings->myHoldings($this->option('user'));
|
||||
}
|
||||
|
||||
foreach ($holdings->get(['symbol']) as $holding) {
|
||||
$this->line('Refreshing ' . $holding->symbol);
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ class RefreshMarketData extends Command
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'refresh:market-data
|
||||
{--force : Ignore refresh delay}';
|
||||
{--force : Ignore refresh delay}
|
||||
{--user= : Limit refresh to user\'s holdings}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -45,10 +46,13 @@ class RefreshMarketData extends Command
|
||||
// get all symbols from market data
|
||||
$holdings = Holding::where('quantity', '>', 0)
|
||||
->select(['symbol'])
|
||||
->distinct()
|
||||
->get();
|
||||
->distinct();
|
||||
|
||||
if ($this->option('user')) {
|
||||
$holdings->myHoldings($this->option('user'));
|
||||
}
|
||||
|
||||
foreach ($holdings as $holding) {
|
||||
foreach ($holdings->get() as $holding) {
|
||||
$this->line('Refreshing ' . $holding->symbol);
|
||||
|
||||
MarketData::getMarketData($holding->symbol, $force);
|
||||
|
||||
@@ -12,7 +12,8 @@ class SyncHoldingData extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'sync:holdings';
|
||||
protected $signature = 'sync:holdings
|
||||
{--user= : Limit refresh to user\'s holdings}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -39,9 +40,13 @@ class SyncHoldingData extends Command
|
||||
public function handle()
|
||||
{
|
||||
// get all holdings
|
||||
$holdings = Holding::get();
|
||||
$holdings = Holding::query();
|
||||
|
||||
foreach ($holdings as $holding) {
|
||||
if ($this->option('user')) {
|
||||
$holdings->myHoldings($this->option('user'));
|
||||
}
|
||||
|
||||
foreach ($holdings->get() as $holding) {
|
||||
$this->line('Refreshing ' . $holding->symbol);
|
||||
|
||||
$holding->syncTransactionsAndDividends();
|
||||
|
||||
@@ -159,10 +159,10 @@ class Holding extends Model
|
||||
->where('portfolios.wishlist', 0);
|
||||
}
|
||||
|
||||
public function scopeMyHoldings($query)
|
||||
public function scopeMyHoldings($query, $userId = null)
|
||||
{
|
||||
return $query->whereHas('portfolio', function($query) {
|
||||
$query->whereRelation('users', 'id', auth()->user()->id);
|
||||
return $query->whereHas('portfolio', function($query) use ($userId) {
|
||||
$query->whereRelation('users', 'id', $userId ?? auth()->user()->id);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user