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/TipController.php
<?php

namespace App\Http\Controllers;

use App\Tip;
use Illuminate\Http\Request;

class TipController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $limit = config('constants.limit');
        $search = $request->search;
        $sortBy = $request->sortBy;
        $sortDir = $request->sortDir;
        if($sortBy=="amount"){
            $sortBy = 'tips.amount';
        }
        else{
            $sortBy = 'tips.id';   
        }
        $tip = Tip::
                where(function($q) use ($search)
                {
                      $q->orWhere('tips.amount', 'like', '%' . $search . '%');
                })
                ->orderBy($sortBy,$sortDir)
                ->paginate($limit);
        return response()->json($tip,200);
        // $tip = Tip::paginate(5);
        // return response()->json(Tip::all(),200);
    }

    public function search(Request $request)
    {
        $limit = config('constants.limit');
        $search = $request->search;
        $tip = Tip::
                where(function($q) use ($search)
                {
                      $q->orWhere('tips.amount', 'like', '%' . $search . '%');
                })
                ->orderBy('tips.id','desc')
                ->paginate($limit);
        return response()->json($tip,200);
    }

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

    /**
     * Display the specified resource.
     *
     * @param  \App\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Tip $tip)
    {
        return response()->json($tip,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, Tip $tip)
    {
        $request->validate([
            'amount' => 'required|numeric|max:5000|unique:tips,amount,'.$tip['id'],
        ]);

        $status = $tip->update(
            $request->only(['amount'])
        );

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

  

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

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


}