Strimoid/Strimoid

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

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Strimoid\Http\Controllers;

use Illuminate\Http\Request;
use Strimoid\Models\Content;
use Strimoid\Models\Entry;

class SaveController extends BaseController
{
    public function __construct(private readonly \Illuminate\Contracts\Auth\Guard $guard, private readonly \Illuminate\Contracts\Routing\ResponseFactory $responseFactory)
    {
    }
    public function saveContent(Request $request)
    {
        $id = hashids_decode($request->get('content'));
        $content = Content::findOrFail($id);

        $content->saves()->create([
            'user_id' => $this->guard->id(),
        ]);

        return $this->responseFactory->json(['status' => 'ok']);
    }

    public function removeContent(Request $request)
    {
        $id = hashids_decode($request->get('content'));
        $content = Content::findOrFail($id);

        $content->userSave()->delete();

        return $this->responseFactory->json(['status' => 'ok']);
    }

    public function saveEntry(Request $request)
    {
        $id = hashids_decode($request->get('entry'));
        $entry = Entry::findOrFail($id);

        $entry->saves()->create([
            'user_id' => $this->guard->id(),
        ]);

        return $this->responseFactory->json(['status' => 'ok']);
    }

    public function removeEntry(Request $request)
    {
        $id = hashids_decode($request->get('entry'));
        $entry = Entry::findOrFail($id);

        $entry->userSave()->delete();

        return $this->responseFactory->json(['status' => 'ok']);
    }
}