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