# fluent-support/1.4.1/app/Http/Controllers/ProductController.php

Fluent Support – Helpdesk &amp; Customer Support Ticket System, version 1.4.1. 75 lines.

- Page: https://pluginprobe.com/plugins/fluent-support/1.4.1/code/app/Http/Controllers/ProductController.php
- Raw: https://pluginprobe.com/plugins/fluent-support/1.4.1/raw/app/Http/Controllers/ProductController.php
- Modified: 2021-11-12T14:57:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/fluent-support/1.4.1/code/app/Http/Controllers/ProductController.php#L10-L20`.

```php
<?php

namespace FluentSupport\App\Http\Controllers;

use FluentSupport\App\Models\Customer;
use FluentSupport\App\Models\Product;
use FluentSupport\App\Models\Conversation;
use FluentSupport\App\Models\Ticket;
use FluentSupport\Framework\Request\Request;
use FluentSupport\Framework\Support\Arr;

class ProductController extends Controller
{
    public function index(Request $request)
    {
        $products = Product::orderBy('id', 'DESC')->searchBy($request->get('search'))->paginate();

        return [
            'products' => $products
        ];
    }

    public function get(Request $request, $productId)
    {
        $product = Product::findOrFail($productId);
        return [
            'product' => $product
        ];
    }

    public function create(Request $request)
    {
        $data = $request->all();
        $this->validate($data, [
            'title' => 'required'
        ]);

        $data = wp_unslash($data);
        $product = Product::create($data);

        return [
            'message' => __('Product has been successfully created', 'fluent-support'),
            'product' => $product
        ];
    }

    public function update(Request $request, $productId)
    {
        $data = $request->all();
        $this->validate($data, [
            'title' => 'required'
        ]);

        $product = Product::findOrFail($productId);
        $product->fill($data);
        $product->save();

        return [
            'message' => __('Product has been updated', 'fluent-support'),
            'product' => Product::find($productId)
        ];
    }

    public function delete(Request $request, $productId)
    {
        Product::where('id', $productId)
            ->delete();

        return [
            'message' => __('Product has been deleted', 'fluent-support')
        ];
    }

}

```
