ruạṛ
<?php /** * Invoice Ninja (https://invoiceninja.com). * * @link https://github.com/invoiceninja/invoiceninja source repository * * @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com) * * @license https://www.elastic.co/licensing/elastic-license */ namespace App\Http\Controllers\Reports; use App\Http\Controllers\BaseController; use App\Http\Requests\Report\GenericReportRequest; use App\Jobs\Report\PreviewReport; use App\Jobs\Report\SendToAdmin; use App\Services\Report\ARSummaryReport; use App\Utils\Traits\MakesHash; class ARSummaryReportController extends BaseController { use MakesHash; private string $filename = 'ar_summary.csv'; public function __construct() { parent::__construct(); } /** * @OA\Post( * path="/api/v1/reports/tasks", * operationId="getTaskReport", * tags={"reports"}, * summary="Task reports", * description="Export task reports", * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), * @OA\RequestBody( * required=true, * @OA\JsonContent(ref="#/components/schemas/GenericReportSchema") * ), * @OA\Response( * response=200, * description="success", * @OA\Header(header="X-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"), * @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"), * @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"), * ), * @OA\Response( * response=422, * description="Validation error", * @OA\JsonContent(ref="#/components/schemas/ValidationError"), * ), * @OA\Response( * response="default", * description="Unexpected Error", * @OA\JsonContent(ref="#/components/schemas/Error"), * ), * ) */ public function __invoke(GenericReportRequest $request) { /** @var \App\Models\User $user */ $user = auth()->user(); if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) { SendToAdmin::dispatch($user->company(), $request->all(), ARSummaryReport::class, $this->filename); return response()->json(['message' => 'working...'], 200); } // expect a list of visible fields, or use the default $hash = \Illuminate\Support\Str::uuid(); PreviewReport::dispatch($user->company(), $request->all(), ARSummaryReport::class, $hash); return response()->json(['message' => $hash], 200); } }
cải xoăn