<?php

namespace App\Http\Controllers\Exports;

use App\Classes\Modules\Exports\Services\ExportsCustomersWalletTransactionHistory;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Excel;
use Illuminate\Support\Facades\Storage;
use App\Classes\General\AWSS3Helper;

class ExportCustomersWalletTransactionToExcelController
{

    /**
     * ExportCustomersWalletTransactionToExcelController constructor.
     * @param Request $request
     */
    public function __construct(Request $request)
    {
        $token = Auth::fromUser(User::find(1));
        $request->headers->set('Authorization', 'Bearer ' . $token);
    }

    public function export(Request $request)
    {
        $exportsTransactions = new ExportsCustomersWalletTransactionHistory($request);
        $exportFileName = $request->route('marking') . '-wallet-' . ($request->route('is_precise') == 'true' ? 'precise-' : '') . 'transaction-history.xls';
        $filesystemDriver = Storage::getDefaultDriver();
        if($filesystemDriver === 's3'){
            return response([ 'src' =>  AWSS3Helper::S3Exportable($exportFileName, $exportsTransactions) ]);
        }
        else{
            $response = $exportsTransactions->download($exportFileName, Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
            ob_end_clean();
            return $response;
        }
    }
}
