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/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