File: /home/imensosw/www/ezwork/app/Http/Controllers/UserAvailabilityController.php
<?php
/**
* UserAvailabilityController 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\UserAvailability;
/**
* UserAvailabilityController class
*
* The class manage the User Availability
*
* @category UserAvailabilityController
* @package Ez
* @author Imenso Software <admin@imensosoftware.com>
* @license http://imensosoftware/license.php GNU Public License
* @link http://imensosoftware.com/recipes
*/
class UserAvailabilityController extends Controller
{
/**
* GetUserDayTimeSlotsPivote function gets the list of user day
* time slots and return it in json format.
*
* @param \Illuminate\Http\Request request
* @return json
*/
public function getUserDayTimeSlotsPivote(Request $request): \Illuminate\Http\JsonResponse
{
$user_id = Auth::user()->id;
$request['user_id'] = $user_id;
$userDayTimeSlotsPivote = UserAvailability::getUserDayTimeSlotsPivote($request);
return response()->json(
[
'status' => 'success',
'userDayTimeSlotsPivote' => $userDayTimeSlotsPivote,
],
200
);
}
// end getUserDayTimeSlotsPivote()
/**
* Update funtion updates the user day and time slot in storage
* for specified user and return it in json.
*
* @param \Illuminate\Http\Request request
* @return json
*/
public function update(Request $request)
{
$user_id = Auth::user()->id;
if ($request->operation == 'delete') {
UserAvailability::where(
[
'user_id' => $user_id,
'time_slot_id' => $request->time_slot_id,
'day_id' => $request->day_id,
]
)->delete();
} elseif ($request->operation == 'insert') {
$userSkill = UserAvailability::updateOrCreate(
[
'user_id' => $user_id,
'time_slot_id' => $request->time_slot_id,
'day_id' => $request->day_id,
],
[
'user_id' => $user_id,
'time_slot_id' => $request->time_slot_id,
'day_id' => $request->day_id,
]
);
} else {
return response()->json(
[
'status' => 'error',
'message' => 'Error in update user availability! Please try again.',
'showErrorPop' => true,
'errors' => [],
],
422
);
}//end if
return response()->json(
[
'status' => 'success',
'message' => 'Availability updated successfully.',
],
200
);
}
// end update()
}
// end class