pixelfed/pixelfed

View on GitHub
app/Http/Controllers/UserAppSettingsController.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\Account\AccountAppSettingsService;
use App\Http\Requests\StoreUserAppSettings;
use App\Models\UserAppSettings;
use App\Http\Resources\UserAppSettingsResource;

class UserAppSettingsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function get(Request $request)
    {
        abort_if(!$request->user(), 403);

        $settings = UserAppSettings::whereUserId($request->user()->id)->first();

        if(!$settings) {
            return [
                'id' => (string) $request->user()->profile_id,
                'username' => $request->user()->username,
                'updated_at' =>  null,
                'common' => AccountAppSettingsService::default(),
            ];
        }

        return new UserAppSettingsResource($settings);
    }

    public function store(StoreUserAppSettings $request)
    {
        $res = UserAppSettings::updateOrCreate([
                'user_id' => $request->user()->id,
            ],[
                'profile_id' => $request->user()->profile_id,
                'common' => $request->common,
            ]
        );

        return new UserAppSettingsResource($res);
    }
}