Disable form submissions count cache + increase ttl
This commit is contained in:
parent
a6e208a88e
commit
508358d020
|
@ -22,6 +22,7 @@ use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||||
class Form extends Model implements CachableAttributes
|
class Form extends Model implements CachableAttributes
|
||||||
{
|
{
|
||||||
use CachesAttributes;
|
use CachesAttributes;
|
||||||
|
|
||||||
const DARK_MODE_VALUES = ['auto', 'light', 'dark'];
|
const DARK_MODE_VALUES = ['auto', 'light', 'dark'];
|
||||||
const THEMES = ['default', 'simple', 'notion'];
|
const THEMES = ['default', 'simple', 'notion'];
|
||||||
const WIDTHS = ['centered', 'full'];
|
const WIDTHS = ['centered', 'full'];
|
||||||
|
@ -131,7 +132,6 @@ class Form extends Model implements CachableAttributes
|
||||||
|
|
||||||
protected $cachableAttributes = [
|
protected $cachableAttributes = [
|
||||||
'is_pro',
|
'is_pro',
|
||||||
'submissions_count',
|
|
||||||
'views_count',
|
'views_count',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ class Form extends Model implements CachableAttributes
|
||||||
|
|
||||||
public function getIsProAttribute()
|
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;
|
return optional($this->workspace)->is_pro;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -166,14 +166,12 @@ class Form extends Model implements CachableAttributes
|
||||||
|
|
||||||
public function getSubmissionsCountAttribute()
|
public function getSubmissionsCountAttribute()
|
||||||
{
|
{
|
||||||
return $this->remember('submissions_count', 5, function(): int {
|
return $this->submissions()->count();
|
||||||
return $this->submissions()->count();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getViewsCountAttribute()
|
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') {
|
if (env('DB_CONNECTION') == 'mysql') {
|
||||||
return (int)($this->views()->count() +
|
return (int)($this->views()->count() +
|
||||||
$this->statistics()->sum(DB::raw("json_extract(data, '$.views')")));
|
$this->statistics()->sum(DB::raw("json_extract(data, '$.views')")));
|
||||||
|
@ -218,7 +216,6 @@ class Form extends Model implements CachableAttributes
|
||||||
|
|
||||||
public function getMaxNumberOfSubmissionsReachedAttribute()
|
public function getMaxNumberOfSubmissionsReachedAttribute()
|
||||||
{
|
{
|
||||||
$this->forget('submissions_count');
|
|
||||||
return ($this->max_submissions_count && $this->max_submissions_count <= $this->submissions_count);
|
return ($this->max_submissions_count && $this->max_submissions_count <= $this->submissions_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ class Workspace extends Model implements CachableAttributes
|
||||||
return self::MAX_FILE_SIZE_PRO;
|
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
|
// Return max file size depending on subscription
|
||||||
foreach ($this->owners as $owner) {
|
foreach ($this->owners as $owner) {
|
||||||
if ($owner->is_subscribed) {
|
if ($owner->is_subscribed) {
|
||||||
|
@ -71,7 +71,7 @@ class Workspace extends Model implements CachableAttributes
|
||||||
return null;
|
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) {
|
foreach ($this->owners as $owner) {
|
||||||
if ($owner->is_subscribed) {
|
if ($owner->is_subscribed) {
|
||||||
if ($license = $owner->activeLicense()) {
|
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 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
|
// Make sure at least one owner is pro
|
||||||
foreach ($this->owners as $owner) {
|
foreach ($this->owners as $owner) {
|
||||||
if ($owner->is_subscribed) {
|
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 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
|
// Make sure at least one owner is pro
|
||||||
foreach ($this->owners as $owner) {
|
foreach ($this->owners as $owner) {
|
||||||
if ($owner->has_enterprise_subscription) {
|
if ($owner->has_enterprise_subscription) {
|
||||||
|
@ -122,7 +122,7 @@ class Workspace extends Model implements CachableAttributes
|
||||||
|
|
||||||
public function getIsRiskyAttribute()
|
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
|
// A workspace is risky if all of his users are risky
|
||||||
foreach ($this->owners as $owner) {
|
foreach ($this->owners as $owner) {
|
||||||
if (!$owner->is_risky) {
|
if (!$owner->is_risky) {
|
||||||
|
@ -136,7 +136,7 @@ class Workspace extends Model implements CachableAttributes
|
||||||
|
|
||||||
public function getSubmissionsCountAttribute()
|
public function getSubmissionsCountAttribute()
|
||||||
{
|
{
|
||||||
return $this->remember('submissions_count', 15, function(): int {
|
return $this->remember('submissions_count', 15 * 60, function(): int {
|
||||||
$total = 0;
|
$total = 0;
|
||||||
foreach ($this->forms as $form) {
|
foreach ($this->forms as $form) {
|
||||||
$total += $form->submissions_count;
|
$total += $form->submissions_count;
|
||||||
|
|
Loading…
Reference in New Issue