35 lines
1.3 KiB
PHP
35 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V2;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Product;
|
|
use App\Models\Upload;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Order;
|
|
use App\Models\OrderDetail;
|
|
use File;
|
|
|
|
class DigitalProductController extends Controller
|
|
{
|
|
public function download(Request $request)
|
|
{
|
|
$product = Product::findOrFail($request->id);
|
|
$orders = Order::select("id")->where('user_id', auth()->user()->id)->pluck('id');
|
|
$orderDetails = OrderDetail::where("product_id", $request->id)->whereIn("order_id", $orders)->get();
|
|
if (auth()->user()->user_type == 'admin' || auth()->user()->id == $product->user_id || $orderDetails) {
|
|
$upload = Upload::findOrFail($product->file_name);
|
|
if (env('FILESYSTEM_DRIVER') == "s3") {
|
|
return \Storage::disk('s3')->download($upload->file_name, $upload->file_original_name . "." . $upload->extension);
|
|
} else {
|
|
if (file_exists(base_path('public/' . $upload->file_name))) {
|
|
$file = public_path() . "/$upload->file_name";
|
|
return response()->download($file, config('app.name') . "_" . $upload->file_original_name . "." . $upload->extension);
|
|
}
|
|
}
|
|
} else {
|
|
return response()->download(File("dd.pdf"), "failed.jpg");
|
|
}
|
|
}
|
|
}
|