Rework products with components

This commit is contained in:
2024-08-14 22:16:09 +10:00
parent 1b581e9feb
commit f1031beff6
11 changed files with 132 additions and 302 deletions

View File

@@ -11,10 +11,11 @@ use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use Intuit\Exceptions\NotTokenException;
use Intuit\Traits\ProviderTokenTrait;
use Leenooks\Traits\ScopeActive;
use App\Casts\CollectionOrNull;
use App\Http\Controllers\AccountingController;
use App\Interfaces\{IDs,ProductItem};
use App\Traits\{ProductDetails,ProviderRef};
@@ -66,7 +67,7 @@ use App\Traits\{ProductDetails,ProviderRef};
*/
class Product extends Model implements IDs
{
use HasFactory,ProductDetails,ScopeActive,ProviderRef;
use HasFactory,ProductDetails,ScopeActive,ProviderRef,ProviderTokenTrait;
protected $casts = [
'pricing' => CollectionOrNull::class,
@@ -368,7 +369,18 @@ class Product extends Model implements IDs
public function accounting(string $provider): Collection
{
return AccountingController::list($provider);
$so = ProviderOauth::where('name',self::provider)
->sole();
if (! ($to=$so->token(Auth::user())))
throw new NotTokenException(sprintf('Unknown Tokens for [%s]',Auth::user()->email));
return $to
->API()
->getItems()
->pluck('pid','Id')
->transform(fn($item,$value)=>['id'=>$value,'value'=>$item])
->values();
}
/**