From 3aa17bd6cded3553c30b0d8a4547e58a1fb7a77b Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 15 Sep 2024 08:18:07 +0200 Subject: [PATCH] remove mimes validation within edocument endpoint, because ParseEDocument handles this + minor code cleanups --- app/Http/Controllers/ExpenseController.php | 46 +++++++++++++++++++ app/Http/Controllers/PostMarkController.php | 4 +- .../Requests/Expense/EDocumentRequest.php | 4 +- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index a6b887f58f00..5a702c6842e8 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -584,6 +584,52 @@ class ExpenseController extends BaseController return $this->itemResponse($expense->fresh()); } + /** + * @OA\Post( + * path="/api/v1/expenses/edocument", + * operationId="edocumentExpense", + * tags={"expenses"}, + * summary="Uploads an electronic document to a expense", + * description="Handles the uploading of an electronic document to a expense", + * @OA\Parameter(ref="#/components/parameters/X-API-TOKEN"), + * @OA\Parameter(ref="#/components/parameters/X-Requested-With"), + * @OA\Parameter(ref="#/components/parameters/include"), + * @OA\RequestBody( + * description="User credentials", + * required=true, + * @OA\MediaType( + * mediaType="multipart/form-data", + * @OA\Schema( + * type="array", + * @OA\Items( + * type="string", + * format="binary", + * description="The files to be uploaded", + * ), + * ) + * ) + * ), + * @OA\Response( + * response=200, + * description="Returns a HTTP status", + * @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", + * response="default", + * description="Unexpected Error", + * @OA\JsonContent(ref="#/components/schemas/Error"), + * ), + * ) + */ public function edocument(EDocumentRequest $request) { $user = auth()->user(); diff --git a/app/Http/Controllers/PostMarkController.php b/app/Http/Controllers/PostMarkController.php index 88e6812fd38e..0358a610d397 100644 --- a/app/Http/Controllers/PostMarkController.php +++ b/app/Http/Controllers/PostMarkController.php @@ -280,7 +280,7 @@ class PostMarkController extends BaseController nlog('Failed: Message could not be parsed, because required parameters are missing.'); return response()->json(['message' => 'Failed. Missing/Invalid Parameters.'], 400); } - + $company = MultiDB::findAndSetDbByExpenseMailbox($input["To"]); if (!$company) { @@ -301,7 +301,7 @@ class PostMarkController extends BaseController $inboundMail = new InboundMail(); $inboundMail->from = $input["From"] ?? ''; - $inboundMail->to = $input["To"] ; // usage of data-input, because we need a single email here + $inboundMail->to = $input["To"]; // usage of data-input, because we need a single email here $inboundMail->subject = $input["Subject"] ?? ''; $inboundMail->body = $input["HtmlBody"] ?? ''; $inboundMail->text_body = $input["TextBody"] ?? ''; diff --git a/app/Http/Requests/Expense/EDocumentRequest.php b/app/Http/Requests/Expense/EDocumentRequest.php index 643c3cd6fc33..410c9a716fe8 100644 --- a/app/Http/Requests/Expense/EDocumentRequest.php +++ b/app/Http/Requests/Expense/EDocumentRequest.php @@ -25,9 +25,9 @@ class EDocumentRequest extends Request $rules = []; if ($this->file('documents') && is_array($this->file('documents'))) { - $rules['documents.*'] = 'required|file|max:1000000|mimes:xml'; + $rules['documents.*'] = 'required|file|max:1000000'; } elseif ($this->file('documents')) { - $rules['documents'] = 'required|file|max:1000000|mimes:xml'; + $rules['documents'] = 'required|file|max:1000000'; } return $rules; }