Rapport-Laravel/app/Http/Controllers/DoctorController.php

144 lines
12 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\LambdaRequest;
use App\Models\Doctor;
use DB;
class DoctorController extends Controller
{
public function __construct()
{
$this->_service = 'ums';
$this->_module = 'contact';
$this->_viewname = 'doctor';
$this->_title = 'Doctors';
$this->_base_url = '/doctor';
}
public function list(Request $request)
{
$post = $request->input();
$token = $request->header('Authorization');
$token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiZWEyOGRhNjktNTM3Mi00OTNkLThjYzYtNmQ0Y2NlZDk1ZDMwIiwibmFtZSI6IlJhdmkgR3VsaGFuZSIsImZpcnN0bmFtZSI6IlJhdmkiLCJsYXN0bmFtZSI6Ikd1bGhhbmUiLCJlbWFpbCI6InJhdmlndWxoYW5lMTk4M0BnbWFpbC5jb20iLCJwaG9uZSI6Ijk4MjM0ODgxMzgiLCJkZXNpZ25hdGlvbiI6Ik5TTSIsImhpZXJhcmNoeSI6ImQzNzliOGI1LTQ4YzMtNDY0ZS1hMThlLWQyYjdkOTk1MWY1YiIsImF2YXRhciI6Imh0dHBzOi8vdWktYXZhdGFycy5jb20vYXBpLz9iYWNrZ3JvdW5kPXJhbmRvbSZuYW1lPVJhdmkgR3VsaGFuZSIsInBhcnRpdGlvbiI6InJhcHBvcnQtcmFwcG9ydCIsImRvbWFpbiI6InJhcHBvcnQiLCJhcHBsaWNhdGlvbiI6InJhcHBvcnQiLCJyb2xlcyI6WyIyYzJkMTg4YS03OWFiLTQ4NmQtOWYwOS0zYWYxNmRlMWI0YTIiXSwiZ3JvdXBzIjpbXSwidGVhbXMiOlsiMTY1MDM0NTI3My0wZjk3NWIxMi1hMDVhLTQwNzctYWY1Yy1lNGIxZDBlNTk0YWQiXSwiYWxsX2RhdGFfYWNjZXNzIjp0cnVlfSwicGVybWlzc2lvbnMiOlsicm9sZXNfY3JlYXRlIiwidXNlcnNfY3JlYXRlIiwidXNlcnNfdXBkYXRlIiwidXNlcnNfZ2V0X2FsbCIsInVzZXJzX2dldF9vbmUiLCJ1c2Vyc19kZWxldGUiLCJ1c2Vyc19kcm9wZG93biIsInVzZXJzX3Byb2ZpbGUiLCJ1c2Vyc19zYXZlcHJvZmlsZSIsInJvbGVzX3VwZGF0ZSIsInJvbGVzX2dldF9hbGwiLCJyb2xlc19nZXRfb25lIiwicm9sZXNfZGVsZXRlIiwicm9sZXNfZHJvcGRvd24iLCJncm91cF9jcmVhdGUiLCJncm91cF91cGRhdGUiLCJncm91cF9nZXRfYWxsIiwiZ3JvdXBfZ2V0X29uZSIsImdyb3VwX2RlbGV0ZSIsImdyb3VwX2Ryb3Bkb3duIiwidGVhbV9jcmVhdGUiLCJ0ZWFtX3VwZGF0ZSIsInRlYW1fZ2V0X2FsbCIsInRlYW1fZ2V0X29uZSIsInRlYW1fZGVsZXRlIiwidGVhbV9kcm9wZG93biIsInRlYW1fcGxheWVyX2NyZWF0ZSIsInRlYW1fcGxheWVyX3VwZGF0ZSIsInRlYW1fcGxheWVyX2RlbGV0ZSIsImNoYW5uZWxfY3JlYXRlIiwiY2hhbm5lbF91cGRhdGUiLCJjaGFubmVsX2dldF9hbGwiLCJjaGFubmVsX2dldF9vbmUiLCJjaGFubmVsX2RlbGV0ZSIsImNoYW5uZWxfZHJvcGRvd24iLCJkb21haW5fY3JlYXRlIiwiZG9tYWluX3VwZGF0ZSIsImRvbWFpbl9nZXRfb25lIiwiaGllcmFyY2h5X2NyZWF0ZSIsImhpZXJhcmNoeV91cGRhdGUiLCJoaWVyYXJjaHlfZ2V0X2FsbCIsImhpZXJhcmNoeV9nZXRfb25lIiwiaGllcmFyY2h5X2RlbGV0ZSIsIm1hZ2F6aW5lX2NyZWF0ZSIsIm1hZ2F6aW5lX3VwZGF0ZSIsIm1hZ2F6aW5lX2dldF9hbGwiLCJtYWdhemluZV9nZXRfb25lIiwibWFnYXppbmVfZGVsZXRlIiwibWFnYXppbmVfZHJvcGRvd24iLCJtYWdhemluZV9kYXNoYm9hcmQiLCJtYWdfbWVkaWFfY3JlYXRlIiwibWFnX21lZGlhX3VwZGF0ZSIsIm1hZ19tZWRpYV9nZXRfYWxsIiwibWFnX21lZGlhX2dldF9vbmUiLCJtYWdfbWVkaWFfZGVsZXRlIiwibWFnX21lZGlhX3ZpZXdzX2NyZWF0ZSIsIm1hZ19tZWRpYV92aWV3c191cGRhdGUiLCJtYWdfbWVkaWFfdmlld3NfZ2V0X2FsbCIsIm1hZ19tZWRpYV92aWV3c19nZXRfb25lIiwibWFnX21lZGlhX3ZpZXdzX2RlbGV0ZSIsIm1hZ19tZWRpYV9saWtlIiwibWFnX21lZGlhX2xpa2VzIiwibWFnX21lZGlhX2NvbW1lbnQiLCJtYWdfbWVkaWFfY29tbWVudHMiLCJ3YWxsbWVzc2FnZV9jcmVhdGUiLCJ3YWxsbWVzc2FnZV91cGRhdGUiLCJ3YWxsbWVzc2FnZV9nZXRfYWxsIiwid2FsbG1lc3NhZ2VfZ2V0X29uZSIsIndhbGxtZXNzYWdlX2RlbGV0ZSIsIndhbGxtZXNzYWdlX2xpa2UiLCJ3YWxsbWVzc2FnZV9saWtlcyIsIndhbGxtZXNzYWdlX2NvbW1lbnQiLCJ3YWxsbWVzc2FnZV9jb21tZW50cyIsIndhbGxiYW5uZXJfY3JlYXRlIiwid2FsbGJhbm5lcl91cGRhdGUiLCJ3YWxsYmFubmVyX2dldF9hbGwiLCJ3YWxsYmFubmVyX2dldF9vbmUiLCJ3YWxsYmFubmVyX2RlbGV0ZSIsIndhbGxiYW5uZXJfZGFzaGJvYXJkIiwibWV0cmljX2NyZWF0ZSIsIm1ldHJpY191cGRhdGUiLCJtZXRyaWNfZ2V0X2FsbCIsIm1ldHJpY19nZXRfb25lIiwibWV0cmljX2RlbGV0ZSIsImluamVzdGlvbl9tYXBwaW5nX2NyZWF0ZSIsImluamVzdGlvbl9tYXBwaW5nX3VwZGF0ZSIsImluamVzdGlvbl9tYXBwaW5nX2dldF9hbGwiLCJpbmplc3Rpb25fbWFwcGluZ19nZXRfb25lIiwiaW5qZXN0aW9uX21hcHBpbmdfZGVsZXRlIiwibWV0cmljX2luamVzdCIsIm1ldHJpY192aWV3X2NyZWF0ZSIsIm1ldHJpY192aWV3X3VwZGF0ZSIsIm1ldHJpY192aWV3X2dldF9hbGwiLCJtZXRyaWNfdmlld19nZXRfb25lIiwibWV0cmljX3ZpZXdfZGVsZXRlIiwibWFnYXppbmVfbGlzdCIsIm1hZ2F6aW5lX2RldGFpbHMiLCJtYWdfbWVkaWFfZGV0YWlscyIsIndhbGxtZXNzYWdlX2xpc3QiLCJ3YWxsbWVzc2FnZV9kZXRhaWxzIiwibWV0cmljX3JlcG9ydF9saXN0IiwibWV0cmljX3JlcG9ydF92aWV3IiwiYXBwcmVjaWF0aW9uX2NhdGVnb3J5X2NyZWF0ZSIsImFwcHJlY2lhdGlvbl9jYXRlZ29yeV91cGRhdGUiLCJhcHByZWNpYXRpb25fY2F0ZWdvcnlfZ2V0X2FsbCIsImFwcHJlY2lhdGlvbl9jYXRlZ29yeV9nZXRfb25lIiwiYXBwcmVjaWF0aW9uX2NhdGVnb3J5X2RlbGV0ZSIsImFwcHJlY2lhdGlvbl9pbWFnZV9jcmVhdGUiLCJhcHByZWNpYXRpb25faW1hZ2VfdXBkYXRlIiwiYXBwcmVjaWF0aW9uX2ltYWdlX2dldF9hbGwiLCJhcHByZWNpYXRpb25faW1hZ2VfZ2V0X29uZSIsImFwcHJlY2lhdGlvbl9pbWFnZV9kZWxldGUiLCJiYWRnZV9saXN0X2NyZWF0ZSIsImJhZGdlX2xpc3RfdXBkYXRlIiwiYmFkZ2VfbGlzdF9nZXRfYWxsIiwiYmFkZ2VfbGlzdF9nZXRfb25lIiwiYmFkZ2VfbGlzdF9kZWxldGUiLCJyZXdhcmRfY3JlYXRlIiwicmV3YXJkX3VwZGF0ZSIsInJld2FyZF9nZXRfYWxsIiwicmV3YXJkX2dldF9vbmUiLCJyZXdhcmRfZGVsZXRlIiwicmV3YXJkX2NhdGVnb3J5X2NyZWF0ZSIsInJld2FyZF9jYXRlZ29yeV91cGRhdGUiLCJyZXdhcmRfY2F0ZWdvcnlfZ2V0X2FsbCIsInJld2FyZF9jYXRlZ29yeV9nZXRfb25lIiwicmV3YXJkX2NhdGVnb3J5X2RlbGV0ZSIsInJld2FyZF9vcmRlcl9jcmVhdGUiLCJyZXdhcmRfb3JkZXJfdXBkYXRlIiwicmV3YXJkX29yZGVyX2dldF9hbGwiLCJyZXdhcmRfb3JkZXJfZ2V0X29uZSIsInJld2FyZF9vcmRlcl9kZWxldGUiLCJmb3JtZW50aXR5X2NyZWF0ZSIsImZvcm1lbnRpdHlfdXBkYXRlIiwiZm9ybWVudGl0eV9nZXRfYWxsIiwiZm9ybWVudGl0eV9nZXRfb25lIiwiZm9ybWVudGl0eV9kZWxldGUiLCJmb3JtcXVlc3Rpb25fY3JlYXRlIiwiZm9ybXF1ZXN0aW9uX3VwZGF0ZSIsImZvcm1xdWVzdGlvbl9nZXRfYWxsIiwiZm9ybXF1ZXN0aW9uX2dldF9vbmUiLCJmb3JtcXVlc3Rpb25fZGVsZXRlIiwiZm9ybWFjdGlvbl9jcmVhdGUiLCJmb3JtYWN0aW9uX3VwZGF0ZSIsImZvcm1hY3Rpb25fZ2V0X2FsbCIsImZvcm1hY3Rpb25fZ2V0X29uZSIsImZvcm1hY3Rpb25fZGVsZXRlIiwiZm9ybWFjdGlvbl9saXN0IiwiZm9ybWVudGl0eV9hcHByb3ZhbCIsImZvcm1lbnRpdHlfYXBwcm92ZXJlamVjdCIsImNvbnRhY3RfY3JlYXRlIiwiY29udGFjdF91cGRhdGUiLCJjb250YWN0X2dldF9hbGwiLCJjb250YWN0X2dldF9vbmUiLCJjb250YWN0X2RlbGV0ZSIsImNvbnRhY3RhdHRyaWJ1dGVfY3JlYXRlIiwiY29udGFjdGF0dHJpYnV0ZV91cGRhdGUiLCJjb250YWN0YXR0cmlidXRlX2dldF9hbGwiLCJjb250YWN0YXR0cmlidXRlX2dldF9vbmUiLCJjb250YWN0YXR0cmlidXRlX2RlbGV0ZSIsImZvcm1wcm9kdWN0X2NyZWF0ZSIsImZvcm1wcm9kdWN0X3VwZGF0ZSIsImZvcm1wcm9kdWN0X2dldF9hbGwiLCJmb3JtcHJvZHVjdF9nZXRfb25lIiwiZm9ybXByb2R1Y3RfZGVsZXRlIiwibm90aWZpY2F0aW9uX2xpc3QiLCJyZW1pbmRlcl9jcmVhdGUiLCJyZW1pbmRlcl91cGRhdGUiLCJyZW1pbmRlcl9nZXRfYWxsIiwicmVtaW5kZXJfZ2V0X29uZSIsInJlbWluZGVyX2RlbGV0ZSIsIndpZGdldHNfY3JlYXRlIiwid2lkZ2V0c191cGRhdGUiLCJ3aWRnZXRzX2dldF9hbGwiLCJ3aWRnZXRzX2dldF9vbmUiLCJ3aWRnZXRzX2RlbGV0ZSIsImFsbF9kYXRhX2FjY2VzcyIsImZvcm1leHBvcnRzX2NyZWF0ZSIsImZvcm1leHBvcnRzX3VwZGF0ZSIsImZvcm1leHBvcnRzX2dldF9hbGwiLCJmb3JtZXhwb3J0c19nZXRfb25lIiwiZm9ybWV4cG9ydHNfZGVsZXRlIiwiY29udGVzdF9jcmVhdGUiLCJjb250ZXN0X3VwZGF0ZSIsImNvbnRlc3RfZ2V0X2FsbCIsImNvbnRlc3RfZ2V0X29uZSIsImNvbnRlc3RfZGVsZXRlIiwiY29udGVzdF9kYXNoYm9hcmQiLCJjb250ZXN0X2xpc3QiLCJjb250ZXN0X2RldGFpbHMiLCJjb250ZXN0X3Jlc3BvbnNlX3JlY29yZCIsInBhcmFtZXRlcl9jcmVhdGUiLCJwYXJhbWV0ZXJfdXBkYXRlIiwicGFyYW1ldGVyX2dldF9hbGwiLCJwYXJhbWV0ZXJfZ2V0X29uZSIsInBhcmFtZXRlcl9kZWxldGUiLCJjb250ZXN0X3Jlc3BvbnNlX2NyZWF0ZSIsImNvbnRlc3RfcmVzcG9uc2VfdXBkYXRlIiwiY29udGVzdF9yZXNwb25zZV9nZXRfYWxsIiwiY29udGVzdF9yZXNwb25zZV9nZXRfb25lIiwiY29udGVzdF9yZXNwb25zZV9kZWxldGUiLCJwZXJzb25hbGl6YXRpb25fY3JlYXRlIiwicGVyc29uYWxpemF0aW9uX3VwZGF0ZSIsInBlcnNvbmFsaXphdGlvbl9nZXRfYWxsIiwicGVyc29uYWxpemF0aW9uX2dldF9vbmUiLCJwZXJzb25hbGl6YXRpb25fZGVsZXRlIiwic3VydmV5X2NyZWF0ZSIsInN1cnZleV91cGRhdGUiLCJzdXJ2ZXlfZ2V0X2FsbCIsInN1cnZleV9nZXRfb25lIiwic3VydmV5X2RlbGV0ZSIsInN1cnZleXF1ZXN0aW9uX2NyZWF0ZSIsInN1cnZleXF1ZXN0aW9uX3VwZGF0ZSIsInN1cnZleXF1ZXN0aW9uX2dldF9hbGwiLCJzdXJ2ZXlxdWVzdGlvbl9nZXRfb25lIiwic3VydmV5cXVlc3Rpb25fZGVsZXRlIiwiY2FtcGFpZ25fY3JlYXRlIiwiY2FtcGFpZ25fdXBkYXRlIiwiY2FtcGFpZ25fZ2V0X2FsbCIsImNhbXBhaWduX2dldF9vbmUiLCJjYW1wYWlnbl9kZWxldGUiLCJjYW1wYWlnbnJ1bGVfY3JlYXRlIiwiY2FtcGFpZ25ydWxlX3VwZGF0ZSIsImNhbXBhaWducnVsZV9nZXRfYWxsIiwiY2FtcGFpZ25ydWxlX2dldF9vbmUiLCJjYW1wYWlnbnJ1bGVfZGVsZXRlIl0sInJvbGVzIjpbIjJjMmQxODhhLTc5YWItNDg2ZC05ZjA5LTNhZjE2ZGUxYjRhMiJdLCJpYXQiOjE2NzUzMjA1NTIsImV4cCI6MTY3NTkyNTM1Mn0.0jvJbbgyAN8pdWR19KoMj0oyU91ZubSszLAXiZjVkbI';
if ($token != '') {
$request->session()->put('metric_access_key', $token);
} else {
$token = $request->session()->get('metric_access_key');
}
$response = LambdaRequest::getrequest($this->_service, $this->_module . '/get_my_contacts', [], $token);
$fields = $this->get_list_fields();
return $this->view('list')->with([
'title' => $this->_title,
'fields' => $fields,
'base_url' => $this->_base_url,
'items' => $response->data->items,
'buttons' => $this->get_list_buttons()
]);
}
public function form($type, $id = null)
{
$token = $this->_request->session()->get('metric_access_key');
$values = [];
if ($type == 'edit') {
$response = LambdaRequest::getrequest($this->_service, $this->_module . '/get_one', ['id' => $id], $token);
$values = $response->data->item;
}
$data = $this->_beforeform($type, $values);
$fields = $this->get_form_fields($type, $values, $token);
return $this->view('form')->with([
'title' => $this->_title,
'mode' => $type,
'fields' => $fields,
'base_url' => $this->_base_url,
'item' => $values,
]);
}
public function save($type, $request)
{
$token = $request->session()->get('metric_access_key');
if ($type == 'edit') {
$url = '/update';
} else {
$url = '/create';
}
$data = $this->_beforesave($type, $request);
$response = LambdaRequest::postrequest($this->_service, $this->_module . $url, $data, $token);
if ($response->statusCode == 200 && $response->status == "success") {
return redirect($this->_base_url . 's')->withMessage('Successfully Saved !!!');
} else {
return redirect($this->_base_url . 's')->withError('Some Error occured! ' . $response->body->message);
}
}
public function createdoctor(Request $request)
{
return Doctor::create($request->only(['msl_code', 'email', 'contact_id', 'name', 'phone']))->id;
}
protected function get_list_fields()
{
return [
'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']],
'name' => ['title' => 'Name', 'type' => 'text'],
'msl_code' => ['title' => 'MSL Code', 'type' => 'text']
];
}
public function action($action, Request $request)
{
$this->_request = $request;
switch ($action) {
case 'edit':
return $this->form('edit', $request->input('id'));
break;
case 'addnew':
return $this->form('new');
break;
case 'delete':
return $this->delete($request->input('id'));
break;
default:
return $this->{$action}($request);
break;
}
}
protected function get_form_fields($type, $values, $token)
{
$response = LambdaRequest::getrequest('ums', 'contactattribute/get_all', [], $token);
$fields = [
'name' => ['title' => 'Name', 'type' => 'text', 'required' => true],
'email' => ['title' => 'Email', 'type' => 'email', 'required' => true],
'phone' => ['title' => 'Phone', 'type' => 'text', 'required' => true],
'msl_code' => ['title' => 'MSL Code', 'type' => 'text'],
'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']],
];
foreach ($response->data->items as $item) {
$values = [];
if (in_array($item->type, ['select', 'radio', 'checkbox'])) {
foreach ($item->options as $op) {
$values[$op->value] = $op->display;
}
}
$fields[$item->code] = ['title' => $item->attribute, 'type' => $item->type, 'required' => $item->required == 'yes' ? true : false, 'values' => $values];
}
return $fields;
}
public function delete($id)
{
$token = $this->_request->session()->get('metric_access_key');
$response = LambdaRequest::getrequest($this->_service, $this->_module . '/delete', ['id' => $id], $token);
if ($response->statusCode == 200 && $response->status == "success") {
return redirect($this->_base_url . 's')->withMessage('Successfully Marked Deleted !!!');
} else {
return redirect($this->_base_url . 's')->withError('Some Error occured! ' . $response->body->message);
}
}
}