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
);
}
}