Merge pull request #751 from popod/api-appointments-populate-end-datetime

Automatically populate the appointment end datetime based on service duration in API
This commit is contained in:
Alex Tselegidis 2020-05-04 20:57:15 +02:00 committed by GitHub
commit 5269f73bab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -110,6 +110,8 @@ class Appointments extends API_V1_Controller {
*/ */
public function post() public function post()
{ {
$this->load->model('services_model');
try try
{ {
// Insert the appointment to the database. // Insert the appointment to the database.
@ -122,6 +124,18 @@ class Appointments extends API_V1_Controller {
unset($appointment['id']); unset($appointment['id']);
} }
// Generate end_datetime based on service duration if this field is not defined
if (!isset($appointment['end_datetime']))
{
$service = $this->services_model->get_row($appointment['id_services']);
if (isset($service['duration']))
{
$endTime = new DateTime($appointment['start_datetime']);
$endTime->add(new DateInterval('PT' . $service['duration'] . 'M'));
$appointment['end_datetime'] = $endTime->format('Y-m-d H:i:s');
}
}
$id = $this->appointments_model->add($appointment); $id = $this->appointments_model->add($appointment);
// Fetch the new object from the database and return it to the client. // Fetch the new object from the database and return it to the client.