FEAT_HR_DASHBOARD

This commit is contained in:
velz 2026-02-05 11:40:48 +05:30
parent c0b692329b
commit 51687f66a8
3 changed files with 46 additions and 2 deletions

View File

@ -656,6 +656,7 @@ $routes->group("employeeRest", ['filter' => ['appSignature'] ], function ($route
$routes->get("hrFileDownload", "EmployeeRestController::hrFileDownload");
$routes->post("hrFileUpload", "EmployeeRestController::hrFileUpload");
$routes->post("updateHrFileUploadData", "EmployeeRestController::updateHrFileUploadData");
$routes->post("getHrDashboad", "EmployeeRestController::getHrDashboad");
//thz_master's

View File

@ -5411,6 +5411,48 @@ class EmployeeRestController extends AdminController
return view('errors/404', $data);
}
}
public function getHrDashboad()
{
// $dashboard_id = $this->request->getGet('dashboard_id') ?? null;
$client_id = $this->request->getPost('client_id') ?? null;
$client_policy_id = $this->request->getPost('client_policy_id') ?? null;
// 🔐 Move this to .env in real projects
$METABASE_SECRET_KEY = '6a9ec3d833576923ea04078188fe26cad17b5de351ab3ce349dd2c2d07b5d0cd';
$payload = [
'resource' => [
// 'dashboard' => 1
'dashboard' => 2
],
'params' => (object)['client_policy_id' => $client_policy_id], // MUST be object for Metabase
'exp' => time() + (10 * 60) // 10 minutes
];
$token = JWT::encode($payload, $METABASE_SECRET_KEY, 'HS256');
// // You can either return token only
// return $this->response->setJSON([
// 'token' => $token,
// 'iframe_url' => "https://your-metabase-domain/embed/dashboard/{$token}#bordered=true&titled=true"
// ]);
if($this->request->getGet('api') == 1)
{
return $this->respond([
'status' => 'success',
'message' => 'Form data received successfully!',
'data' => [
'metabaseToken' => $token,
'metabaseUrl' => 'https://nsights.nhanceindia.in']
]);
}
return view('meta_dashboard_demo_one', [
'metabaseToken' => $token,
'metabaseUrl' => 'https://nsights.nhanceindia.in',
]);
}
}

View File

@ -993,9 +993,10 @@ class TestingController extends BaseController
$payload = [
'resource' => [
'dashboard' => 1
// 'dashboard' => 1
'dashboard' => 2
],
'params' => (object)[], // MUST be object for Metabase
'params' => (object)['client' => 3776], // MUST be object for Metabase
'exp' => time() + (10 * 60) // 10 minutes
];