<?php

namespace App\Traits;

use Illuminate\Http\Request;

trait SortingTraits
{
    public function sortField(Request $request, $defaultColumn)
    {
        $sortField = $request->sortField;

        //! check if sortField value is undefined and set it to defaultColumn to sort
        if(!$sortField) 
        {
            return $defaultColumn;
        }
        else 
        {
            return $sortField;
        }
    }

    public function sortOrder(Request $request, $defaultOrder = '')
    {
        $sortOrder = $request->sortOrder;

        if($sortOrder == 'ascend') 
        {
            //! check if sortOrder value is ascend and set it to asc
            return $sortOrder = 'asc';
        }
        else if($sortOrder == 'descend') 
        {
            //! check if sortOrder value is descend and set it to desc
            return $sortOrder = 'desc';
        }
        else 
        {
            //! sortOrder value is undefined and set it to $defaultOrder or asc
            if (!empty($defaultOrder)) 
            {
                return $sortOrder = $defaultOrder;
            }
            
            return $sortOrder = 'asc';
        }
    }
}