Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
app
/
Http
/
Controllers
/
Api
/
Filename :
GoalController.php
back
Copy
<?php namespace App\Http\Controllers\Api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\College; use App\Models\Goal; use App\Models\Group; use App\Models\Task; use App\Models\CollegeGoalWeightage; use Helpers; class GoalController extends Controller { public function get_goals(Request $request) { $user = $request->user(); $user_setting = $request->user()->setting; $data = array(); $data['recent_goal'] = Goal::select('goal_id', 'goal_name', 'goal_color', 'goal_logo') ->where('goal_id', $user_setting->recent_goal_id) ->first(); $data['active_group'] = Group::select('*') ->where('group_id', $user->active_group_id) ->first(); $data['goals'] = Goal::select('goal_id', 'goal_name', 'goal_color', 'goal_logo', 'scholarship_points')->get(); $res_data['data'] = $data; return Helpers::successResponse($res_data, 200, 'Goal fetched successfully.'); } public function get_goal_by_id(Request $request){ $validated = $request->validate([ "goal_id" => "required|numeric", "college_id" => "numeric", "recommended_tasks_limit" => "numeric" ]); $user = $request->user(); $data = array(); $goal = Goal::find($request->goal_id); if(isset($goal)) $data['goal'] = $goal; else return Helpers::responseMessage(404, 'goal not found with provided goal id'); $ideal_rate = 0; if($request->has('college_id')){ $college = College::select('college_id', 'college_name', 'scholarship_points') ->find($request->college_id); if(isset($college)){ $collegeWeightage = CollegeGoalWeightage::where('college_id', $request->college_id)->where('goal_id', $request->goal_id)->first(); if(!empty($collegeWeightage)){ $ideal_rate = number_format((($college->scholarship_points * $collegeWeightage->weightage) / 100) / 52); } $data['college'] = $college; } else return Helpers::responseMessage(404, 'college not found with provided college id'); } $data['ideal_rate'] = $ideal_rate; if($request->has('recommended_tasks_limit')) { $tasks = Task::select(['tasks.task_id', 'tasks.task_title', 'tasks.description', 'tasks.group_id','tasks.task_type', 'tasks.due_by', 'tasks.task_sp', 'task_assigned.status']) ->join('task_assigned', 'tasks.task_id', 'task_assigned.task_id') ->where('task_assigned.user_id', $user->user_id) ->where('tasks.goal_id', $request->goal_id) ->groupBy('tasks.task_id') ->inRandomOrder() ->limit($request->recommended_tasks_limit) ->get(); if(count($tasks) > 0) $data['tasks'] = $tasks; } return Helpers::successResponse($data, 200, 'Goal fetched successfully.'); } }