%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/
Upload File :
Create Path :
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/MessageController.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\StoreMessage;
use App\Http\Resources\MessageResource;
use App\Models\Message;
use App\Models\User;
use App\Notifications\NewMessage;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;

class MessageController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @param Request $request
     * @param User $user
     * @return MessageResource $messages
     */
    public function index(Request $request, User $user)
    {
        $messages = $user->messages()->orderBy('created_at', 'desc')->paginate(12);

        return MessageResource::collection($messages);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param StoreMessage $request
     * @param User $user
     * @return \Illuminate\Http\Response
     */
    public function store(StoreMessage $request, User $user)
    {
        $message = $user->messages()->create([
            'name' => $request->get('name'),
            'email' => $request->get('email'),
            'phone' => $request->get('phone'),
            'message' => Crypt::encryptString(nl2br($request->get('message')))
        ]);

        $user->notify(new NewMessage($message));

        return response()->json($message->exists());
    }

    /**
     * Update a resource in storage.
     *
     * @param User $user
     * @param Message $message
     * @return \Illuminate\Http\Response
     */
    public function update(User $user, Message $message)
    {
        if ($user->cannot('update', $message)) {
            abort(403);
        }

        $message->update([
            'read' => true,
            'read_at' => Carbon::now()
        ]);

        return new MessageResource($message);
    }

    /**
     * Display the specified resource.
     *
     * @param Message $message
     * @param User $user
     * @return MessageResource $message
     */
    public function show(User $user, Message $message)
    {
        if ($user->cannot('view', $message)) {
            abort(403);
        }

        return new MessageResource($message);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param Message $message
     * @param User $user
     * @return null
     */
    public function destroy(User $user, Message $message)
    {
        if ($user->cannot('delete', $message)) {
            abort(403);
        }

        $message->delete();
    }
}

Zerion Mini Shell 1.0