HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Controllers/Api/HealthProfileMasterController.php
<?php

namespace App\Http\Controllers\api;

use App\HealthProfileMaster;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests\HealthprofilemasterRequest;
use Illuminate\Database\QueryException;
use Validator;
use Exception;
use Throwable;
use DB;
use Auth;

class HealthProfileMasterController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        try {
            $authRole = Auth::user();
            $auth_id = auth()->user()->id;
            $paginate = $request->count_per_page ? $request->count_per_page : 10;
            $pageNumber = $request->page ? $request->page : 1;
            $search_key = $request->search ? $request->search : '';
            $list_type = $request->list_type ? $request->list_type : 'list'; //paginate
            /**
             * @var int|null $paginate
             * @var int|null $pageNumber
             * @var string|null $search_key
             * @var string|null $list_type
             */

            $sort_by_col = (isset($request->sort_by)) ? $request->sort_by : 'id';
            $data_order_by = $request->order_by;
            /** @var string $data_order_by */
            $orderBy = $data_order_by ? strtoupper($data_order_by) : strtoupper('desc');
            $list = HealthProfileMaster::whereNotNull('id');
            //$list = Auditlog::all();
            if(!empty($search_key)) {
                $list = $list->where(function($q) use($search_key){
                    $q->where('measurement_name', 'LIKE', "%{$search_key}%");
                    $q->orWhere('units', 'LIKE', "%{$search_key}%");
                });
            }
            if($sort_by_col) {
                /**
                 * @var string $sort_by_col
                 * @var string $orderBy
                 */
                $list = $list->orderBy($sort_by_col, $orderBy);
            }

            if($list_type == 'paginate')
                return self::sentResponse(200, $list->paginate($paginate), __('digimed_validation.success_response.data_fetch_success'));
            else
                return self::sentResponse(200, $list->get(), __('digimed_validation.success_response.data_fetch_success'));
        } catch(Exception | Throwable | QueryException $e) {
            return self::sentResponse(500, [], $e->getMessage());
        }
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(HealthprofilemasterRequest $request)
    {
        try {
            //$validated = $request->validated();
            $authRole = Auth::user();
            $auth_id = auth()->user()->id;
            $health_profile_master = new HealthProfileMaster();
            $health_profile_master->created_by = $auth_id;
            $health_profile_master->measurement_name = $request->measurement_name;
            $health_profile_master->units = $request->units;
            $health_profile_master->save();
            return self::sentResponse(200, [], __('digimed_validation.success_response.data_store_success'));
        } catch(Exception | Throwable | QueryException $e) {
            return self::sentResponse(500, [], $e->getMessage());
        }
    }


    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(HealthprofilemasterRequest $request)
    {
        try {
            $authRole = Auth::user();
            $auth_id = auth()->user()->id;
            $id = $request->id;
            if($id) {
                $health_profile_master = HealthProfileMaster::find($id);
                //echo "<pre>"; print_r($health_profile_master); exit;
                $health_profile_master->measurement_name = $request->measurement_name;
                $health_profile_master->units = $request->units;
                $health_profile_master->updated_by = $auth_id;
                $health_profile_master->update();
                return self::sentResponse(200, [], __('digimed_validation.success_response.data_update_success'));
            } else {
                return self::sentResponse(200, [], __('digimed_validation.error_response.records_not_found'));
            }

        } catch (Exception | Throwable | QueryException $e) {
            return self::sentResponse(500, [], $e->getMessage());
        }
    }





    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function delete(Request $request)
    {
        try {
            //$validated = $request->validated();
            $authRole = Auth::user();
            $auth_id = auth()->user()->id;
            $id = $request->id;
            if($id) {
                $health_profile_master = HealthProfileMaster::find($request->id);
                $health_profile_master->deleted_by = $auth_id;
                $health_profile_master->save();
                $health_profile_master->delete();
                return self::sentResponse(200, [], __('digimed_validation.success_response.data_delete_success'));
            } else {
                return self::sentResponse(200, [], __('digimed_validation.error_response.records_not_found'));
            }

        } catch(Exception | Throwable | QueryException $e) {
            return self::sentResponse(500, [], $e->getMessage());
        }
    }
}