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: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/public_html/ezwork/app/Http/Controllers/UserContractController.php
<?php

/**
 * UserContractController class file
 *
 * PHP Version 7.2
 *
 * @category Controller
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use DB ;
use App\Models\UserContract;

/**
 * UserContractController class
 *
 * The class manage the User Contract
 *
 * @category UserContractController
 * @package  Ez
 * @author   Imenso Software <admin@imensosoftware.com>
 * @license  http://imensosoftware/license.php GNU Public License
 * @link     http://imensosoftware.com/recipes
 */

class UserContractController extends Controller
{
    
    /**
     * AcceptContract function Updates the specified user contract in
     * the storage and return it in json format.
     *
     * @param  \Illuminate\Http\Request  request
     * @return json
     */
    public function acceptContract(Request $request): \Illuminate\Http\JsonResponse
    {
        $user_id = Auth::user()->id ;
        UserContract::where('id', $request->accept_contract_id)->update(
            ['status_id' => 1 ,
            'contract_accept_date' => date('Y-m-d')]
        );

        $contractCount = UserContract::where('user_id', $user_id)->where('status_id', 1)->count();
        $skillCount = \App\Models\UserSkillPair::where('user_id', $user_id)->count();

        if ($skillCount > 1) {
            if (Auth::user()->profile->translator_status_id == 9) {
                \App\Models\Profile::where('user_id', $user_id)->update(['translator_status_id' => 10]);
            }
        }

        $request['user_id'] = $user_id ;
        $userContract = UserContract::getUserContract($request);
        $translatorStatus = \App\Models\Profile::
        select('profiles.translator_status_id', 'translator_status.translator_status_name as translator_status_name')
            ->join('translator_status', 'translator_status.id', '=', 'profiles.translator_status_id')
            ->where('profiles.user_id', $user_id)
            ->first();

        return response()->json(
            [
                'status' => 'success',
                'message' => 'Contract accepted successfully.',
                'translator_status_id' => $translatorStatus->translator_status_id,
                'translator_status_name' => $translatorStatus->translator_status_name,
                'userContract' => $userContract,
            ],
            200
        );
    }
}