From 508358d020e5ebf7db92dba8d74aadac707b592a Mon Sep 17 00:00:00 2001 From: Julien Nahum Date: Sat, 2 Dec 2023 20:35:44 +0100 Subject: [PATCH] Disable form submissions count cache + increase ttl --- app/Models/Forms/Form.php | 11 ++++------- app/Models/Workspace.php | 12 ++++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/Models/Forms/Form.php b/app/Models/Forms/Form.php index 6afadac..0597274 100644 --- a/app/Models/Forms/Form.php +++ b/app/Models/Forms/Form.php @@ -22,6 +22,7 @@ use Illuminate\Database\Eloquent\Casts\Attribute; class Form extends Model implements CachableAttributes { use CachesAttributes; + const DARK_MODE_VALUES = ['auto', 'light', 'dark']; const THEMES = ['default', 'simple', 'notion']; const WIDTHS = ['centered', 'full']; @@ -131,7 +132,6 @@ class Form extends Model implements CachableAttributes protected $cachableAttributes = [ 'is_pro', - 'submissions_count', 'views_count', ]; @@ -146,7 +146,7 @@ class Form extends Model implements CachableAttributes public function getIsProAttribute() { - return $this->remember('is_pro', 15, function(): bool { + return $this->remember('is_pro', 15 * 60, function (): bool { return optional($this->workspace)->is_pro; }); } @@ -166,14 +166,12 @@ class Form extends Model implements CachableAttributes public function getSubmissionsCountAttribute() { - return $this->remember('submissions_count', 5, function(): int { - return $this->submissions()->count(); - }); + return $this->submissions()->count(); } public function getViewsCountAttribute() { - return $this->remember('views_count', 5, function(): int { + return $this->remember('views_count', 15 * 60, function (): int { if (env('DB_CONNECTION') == 'mysql') { return (int)($this->views()->count() + $this->statistics()->sum(DB::raw("json_extract(data, '$.views')"))); @@ -218,7 +216,6 @@ class Form extends Model implements CachableAttributes public function getMaxNumberOfSubmissionsReachedAttribute() { - $this->forget('submissions_count'); return ($this->max_submissions_count && $this->max_submissions_count <= $this->submissions_count); } diff --git a/app/Models/Workspace.php b/app/Models/Workspace.php index 8bf903b..ee48aaf 100644 --- a/app/Models/Workspace.php +++ b/app/Models/Workspace.php @@ -49,7 +49,7 @@ class Workspace extends Model implements CachableAttributes return self::MAX_FILE_SIZE_PRO; } - return $this->remember('max_file_size', 15, function(): int { + return $this->remember('max_file_size', 15 * 60, function(): int { // Return max file size depending on subscription foreach ($this->owners as $owner) { if ($owner->is_subscribed) { @@ -71,7 +71,7 @@ class Workspace extends Model implements CachableAttributes return null; } - return $this->remember('custom_domain_count', 15, function(): int { + return $this->remember('custom_domain_count', 15 * 60, function(): int { foreach ($this->owners as $owner) { if ($owner->is_subscribed) { if ($license = $owner->activeLicense()) { @@ -92,7 +92,7 @@ class Workspace extends Model implements CachableAttributes return true; // If no paid plan so TRUE for ALL } - return $this->remember('is_pro', 15, function(): bool { + return $this->remember('is_pro', 15 * 60, function(): bool { // Make sure at least one owner is pro foreach ($this->owners as $owner) { if ($owner->is_subscribed) { @@ -109,7 +109,7 @@ class Workspace extends Model implements CachableAttributes return true; // If no paid plan so TRUE for ALL } - return $this->remember('is_enterprise', 15, function(): bool { + return $this->remember('is_enterprise', 15 * 60, function(): bool { // Make sure at least one owner is pro foreach ($this->owners as $owner) { if ($owner->has_enterprise_subscription) { @@ -122,7 +122,7 @@ class Workspace extends Model implements CachableAttributes public function getIsRiskyAttribute() { - return $this->remember('is_risky', 15, function(): bool { + return $this->remember('is_risky', 15 * 60, function(): bool { // A workspace is risky if all of his users are risky foreach ($this->owners as $owner) { if (!$owner->is_risky) { @@ -136,7 +136,7 @@ class Workspace extends Model implements CachableAttributes public function getSubmissionsCountAttribute() { - return $this->remember('submissions_count', 15, function(): int { + return $this->remember('submissions_count', 15 * 60, function(): int { $total = 0; foreach ($this->forms as $form) { $total += $form->submissions_count;