Update SettingsController, fix double json encoding and cache settings for 7 days

This commit is contained in:
Daniel Supernault 2022-09-19 03:39:33 -06:00
parent ef0d1f84ae
commit 4514ab1dbe
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
3 changed files with 60 additions and 20 deletions

View file

@ -303,7 +303,7 @@ class SettingsController extends Controller
} }
if($changed) { if($changed) {
$setting->compose_settings = json_encode($compose); $setting->compose_settings = $compose;
$setting->save(); $setting->save();
Cache::forget('profile:compose:settings:' . $request->user()->id); Cache::forget('profile:compose:settings:' . $request->user()->id);
} }

View file

@ -74,6 +74,7 @@ class AccountService
public static function settings($id) public static function settings($id)
{ {
return Cache::remember('profile:compose:settings:' . $id, 604800, function() use($id) {
$settings = UserSetting::whereUserId($id)->first(); $settings = UserSetting::whereUserId($id)->first();
if(!$settings) { if(!$settings) {
return self::defaultSettings(); return self::defaultSettings();
@ -96,6 +97,7 @@ class AccountService
} }
return $item; return $item;
}); });
});
} }
public static function canEmbed($id) public static function canEmbed($id)

View file

@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use App\UserSetting;
class FixDoubleJsonEncodedSettingsInUsersettingsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
UserSetting::whereNotNull('compose_settings')
->chunk(50, function($settings) {
foreach($settings as $userSetting) {
if(is_array($userSetting->compose_settings)) {
continue;
}
$userSetting->compose_settings = json_decode($userSetting->compose_settings);
$userSetting->save();
}
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
}