From 5458bf83b01fb83809ee4cad6312fcffb323e6a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gayot?= Date: Thu, 22 Oct 2020 01:18:50 +0200 Subject: [PATCH 1/3] :bug: Fix invoice preview with custom designs --- app/Http/Controllers/PreviewController.php | 2 -- app/Jobs/Invoice/CreateInvoicePdf.php | 12 +++++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index a59cd0a9286e..7637e07572fd 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -196,8 +196,6 @@ class PreviewController extends BaseController ->design($design) ->build(); - info($maker->getCompiledHTML(true)); - $file_path = PreviewPdf::dispatchNow($maker->getCompiledHTML(true), auth()->user()->company()); DB::rollBack(); diff --git a/app/Jobs/Invoice/CreateInvoicePdf.php b/app/Jobs/Invoice/CreateInvoicePdf.php index 965bde1c3a9a..44ec8de2b3b0 100644 --- a/app/Jobs/Invoice/CreateInvoicePdf.php +++ b/app/Jobs/Invoice/CreateInvoicePdf.php @@ -19,6 +19,7 @@ use App\Libraries\MultiDB; use App\Models\ClientContact; use App\Models\Company; use App\Models\Design; +use App\Services\PdfMaker\Design as PdfDesignModel; use App\Models\Invoice; use App\Services\PdfMaker\Design as PdfMakerDesign; use App\Services\PdfMaker\PdfMaker as PdfMakerService; @@ -87,7 +88,14 @@ class CreateInvoicePdf implements ShouldQueue $design = Design::find($invoice_design_id); $html = new HtmlEngine(null, $this->invitation, 'invoice'); - $template = new PdfMakerDesign(strtolower($design->name)); + if ($design->is_custom) { + $options = [ + 'custom_partials' => json_decode(json_encode($design->design), true) + ]; + $template = new PdfMakerDesign(PdfDesignModel::CUSTOM, $options); + } else { + $template = new PdfMakerDesign(strtolower($design->name)); + } $state = [ 'template' => $template->elements([ @@ -109,8 +117,6 @@ class CreateInvoicePdf implements ShouldQueue ->design($template) ->build(); - info($maker->getCompiledHTML()); - //todo - move this to the client creation stage so we don't keep hitting this unnecessarily Storage::makeDirectory($path, 0775); From 4ac554607c98ccdf3ac53e8977fc59cb687df4d8 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 22 Oct 2020 20:25:36 +1100 Subject: [PATCH 2/3] implement swoole --- app/Http/Kernel.php | 2 +- composer.json | 1 + composer.lock | 83 +++++++++++++++++++++++++++++++++++++++++++-- config/app.php | 2 ++ 4 files changed, 85 insertions(+), 3 deletions(-) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index b7f4db0c3774..11c794897e43 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -52,7 +52,7 @@ class Kernel extends HttpKernel ], 'api' => [ - 'throttle:60,1', + 'throttle:6000,1', 'bindings', 'query_logging', //\App\Http\Middleware\StartupCheck::class, diff --git a/composer.json b/composer.json index 3eb140e72ee2..37abcc2c4042 100644 --- a/composer.json +++ b/composer.json @@ -59,6 +59,7 @@ "spatie/browsershot": "^3.37", "staudenmeir/eloquent-has-many-deep": "^1.11", "stripe/stripe-php": "^7.50", + "swooletw/laravel-swoole": "^2.6", "turbo124/beacon": "^1", "turbo124/laravel-gmail": "^5.0", "webpatser/laravel-countries": "dev-master#75992ad" diff --git a/composer.lock b/composer.lock index a013bee1626f..794ca2884d4c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "152c174ecc48f87a2c7fd00335c6fc86", + "content-hash": "08ae0ebd522fae2599454303710f08b1", "packages": [ { "name": "asgrim/ofxparser", @@ -6497,6 +6497,85 @@ ], "time": "2019-11-12T09:31:26+00:00" }, + { + "name": "swooletw/laravel-swoole", + "version": "v2.6.68", + "source": { + "type": "git", + "url": "https://github.com/swooletw/laravel-swoole.git", + "reference": "4167206bfbaea752264c814cac5c2172e72a400a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swooletw/laravel-swoole/zipball/4167206bfbaea752264c814cac5c2172e72a400a", + "reference": "4167206bfbaea752264c814cac5c2172e72a400a", + "shasum": "" + }, + "require": { + "illuminate/console": "~5.4|~6.0|~7.0|~8.0", + "illuminate/contracts": "~5.4|~6.0|~7.0|~8.0", + "illuminate/http": "~5.4|~6.0|~7.0|~8.0", + "illuminate/support": "~5.4|~6.0|~7.0|~8.0", + "php": "^7.2", + "predis/predis": "^1.1" + }, + "require-dev": { + "codedungeon/phpunit-result-printer": "^0.14.0", + "laravel/lumen-framework": "~5.4|~6.0|~7.0|~8.0", + "mockery/mockery": "~1.0", + "php-coveralls/php-coveralls": "^2.1", + "php-mock/php-mock": "^2.0", + "phpunit/php-code-coverage": "^6.1", + "phpunit/phpunit": "^7.5", + "swoole/ide-helper": "@dev" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "SwooleTW\\Http\\LaravelServiceProvider" + ], + "aliases": { + "Server": "SwooleTW\\Http\\Server\\Facades\\Server", + "Table": "SwooleTW\\Http\\Server\\Facades\\Table", + "Room": "SwooleTW\\Http\\Websocket\\Facades\\Room", + "Websocket": "SwooleTW\\Http\\Websocket\\Facades\\Websocket" + } + } + }, + "autoload": { + "files": [ + "src/Server/helpers.php" + ], + "psr-4": { + "SwooleTW\\Http\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Albert Chen", + "email": "albert@unisharp.com" + }, + { + "name": "Huang Yi", + "email": "coodeer@163.com" + } + ], + "description": "High performance HTTP server based on Swoole. Speed up your Laravel and Lumen applications.", + "keywords": [ + "http", + "laravel", + "lumen", + "performance", + "server", + "swoole" + ], + "time": "2020-09-21T10:06:50+00:00" + }, { "name": "symfony/console", "version": "v5.1.7", @@ -6588,7 +6667,7 @@ "type": "tidelift" } ], - "time": "2020-10-07T15:23:00+00:00" + "time": "2020-09-18T14:27:32+00:00" }, { "name": "symfony/css-selector", diff --git a/config/app.php b/config/app.php index bbd643def594..89961932a055 100644 --- a/config/app.php +++ b/config/app.php @@ -181,6 +181,8 @@ return [ App\Providers\MultiDBProvider::class, App\Providers\ClientPortalServiceProvider::class, App\Providers\NinjaTranslationServiceProvider::class, + SwooleTW\Http\LaravelServiceProvider::class, + ], /* From b346ed714b90576092e3f3011057add1c61214c5 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 22 Oct 2020 20:27:53 +1100 Subject: [PATCH 3/3] Fix rate limiting --- app/Http/Kernel.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 11c794897e43..7abf9d4f0692 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -52,10 +52,9 @@ class Kernel extends HttpKernel ], 'api' => [ - 'throttle:6000,1', + 'throttle:60,1', 'bindings', 'query_logging', - //\App\Http\Middleware\StartupCheck::class, \App\Http\Middleware\Cors::class, ], 'contact' => [