MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/amanda/app/Http/Controllers/TagController.php
<?php

namespace App\Http\Controllers;

use App\Tag;
use Illuminate\Http\Request;

class TagController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $limit = config('constants.limit');
        $search = $request->search;
        $tag = Tag::
                where(function($q) use ($search)
                {
                      $q->orWhere('tags.name', 'like', '%' . $search . '%');
                })
                ->orderBy('tags.id','desc')
            ->paginate($limit);
        return response()->json($tag,200); 
        // $tag = Tag::paginate(5);
        // return response()->json($tag,200);
        // return response()->json(Tag::all(),200);
    }

    public function tagSearch(Request $request)
    {
        $limit = config('constants.limit');
        $search = $request->search;
        $tag = Tag::
                where(function($q) use ($search)
                {
                      $q->orWhere('tags.name', 'like', '%' . $search . '%');
                })
                ->orderBy('tags.id','desc')
            ->paginate($limit);
        return response()->json($tag); 
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required|unique:tags,name|max:30',
        ]);
        $tag = Tag::create([
            'name' => $request->name,
            
        ]);
        return response()->json([
            'status' => (bool) $tag,
            'data'   => $tag,
            'message' => $tag ? 'Tag Created!' : 'Error Creating Tag'
        ]);
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Tag $tag)
    {
        return response()->json($tag,200); 
    }

    public function uploadFile(Request $request)
    {
        if($request->hasFile('image')){
            $name = time()."_".$request->file('image')->getClientOriginalName();
            $request->file('image')->move(public_path('images'), $name);
        }
        return response()->json(asset("images/$name"),201);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Tag $tag)
    {
        $request->validate([
            'name' => 'required|max:30|unique:tags,name,'.$tag['id'],
        ]);
        $status = $tag->update(
            $request->only(['name'])
        );

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Tag Updated!' : 'Error Updating Tag'
        ]);
    }

    public function updateUnits(Request $request, Tag $tag)
    {
        $tag->units = $tag->units + $request->get('units');
        $status = $tag->save();

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Units Added!' : 'Error Adding Tag Units'
        ]);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $status = Tag::find($id)->delete();

        return response()->json([
            'status' => $status,
            'message' => $status ? 'Tag Deleted!' : 'Error Deleting Tag'
        ]);
    }

    

}