/** * Get problem from specific problem id * @return mixed */ public function getProblem() { $problem = Problem::find(intval(Input::get('id'))); $data_log = null; $data_log_query = DataLog::code($problem->station->code)->valid($problem->data_type); if ($problem->data_type == "WATER") { $data_log_query = $data_log_query->from($problem->start_datetime, 7200)->to($problem->end_datetime, 7200)->cleanOrigin("WATER"); } elseif ($problem->data_type == "RAIN") { $data_log_query = $data_log_query->from($problem->start_datetime, 3600 * 5)->to($problem->end_datetime, 3600 * 5)->hourly()->cleanOrigin("RAIN"); } $data_log = $data_log_query->get()->toArray(); $data_log_new = array(); foreach ($data_log as $item) { if ($problem->data_type == 'WATER') { $data_log_new[] = [strtotime($item['date'] . ' ' . $item['time']) * 1000, floatval($item['origin_water1'])]; } else { $data_log_new[] = [strtotime($item['date'] . ' ' . $item['time']) * 1000, floatval($item['origin_rain1h'])]; } } $output = array('id' => $problem->id, 'data_type' => $problem->data_type, 'problem_type' => $problem->problem_type, 'start_datetime' => $problem->start_datetime, 'start_datetime_unix' => strtotime($problem->start_datetime), 'end_datetime' => $problem->end_datetime, 'end_datetime_unix' => strtotime($problem->end_datetime), 'num' => $problem->num, 'station' => array('name' => $problem->station->name, 'code' => $problem->station->code, 'tambon_name' => $problem->station->tambon_name, 'amphoe_name' => $problem->station->amphoe_name, 'province_name' => $problem->station->province_name, 'part' => $problem->station->part, 'basin' => $problem->station->basin), 'data' => $data_log_new); return Response::json($output); }