Updated the Ics_file.php library to work with the updated code.

This commit is contained in:
Alex Tselegidis 2021-10-28 14:00:18 +02:00
parent f540922abc
commit 23d80259d9

View file

@ -23,35 +23,38 @@ use Jsvrcek\ICS\Model\Relationship\Organizer;
use Jsvrcek\ICS\Utility\Formatter; use Jsvrcek\ICS\Utility\Formatter;
/** /**
* Class Ics_file * Ics file library
* *
* An ICS file is a calendar file saved in a universal calendar format used by several email and calendar programs, * Handle ICS related functionality.
*
* An ICS file is a calendar file saved in a universal calendar format used by many email and calendar programs,
* including Microsoft Outlook, Google Calendar, and Apple Calendar. * including Microsoft Outlook, Google Calendar, and Apple Calendar.
* *
* Depends on the Jsvrcek\ICS composer package. * @package Libraries
*/ */
class Ics_file { class Ics_file {
/** /**
* Get the ICS file contents for the provided arguments. * Get the ICS file contents for the provided arguments.
* *
* @param array $appointment Appointment. * @param array $appointment Appointment data.
* @param array $service Service. * @param array $service Service data.
* @param array $provider Provider. * @param array $provider Provider data.
* @param array $customer Customer. * @param array $customer Customer data.
* *
* @return string Returns the contents of the ICS file. * @return string Returns the contents of the ICS file.
* *
* @throws CalendarEventException * @throws CalendarEventException
* @throws Exception * @throws Exception
*/ */
public function get_stream($appointment, $service, $provider, $customer) public function get_stream(array $appointment, array $service, array $provider, array $customer): string
{ {
$appointment_timezone = new DateTimeZone($provider['timezone']); $appointment_timezone = new DateTimeZone($provider['timezone']);
$appointment_start = new DateTime($appointment['start_datetime'], $appointment_timezone); $appointment_start = new DateTime($appointment['start_datetime'], $appointment_timezone);
$appointment_end = new DateTime($appointment['end_datetime'], $appointment_timezone); $appointment_end = new DateTime($appointment['end_datetime'], $appointment_timezone);
// Setup the event. // Set up the event.
$event = new CalendarEvent(); $event = new CalendarEvent();
$event $event
@ -61,7 +64,7 @@ class Ics_file {
->setSummary($service['name']) ->setSummary($service['name'])
->setUid($appointment['id']); ->setUid($appointment['id']);
if (!empty($service['location'])) if ( ! empty($service['location']))
{ {
$location = new Location(); $location = new Location();
$location->setName((string)$service['location']); $location->setName((string)$service['location']);
@ -73,7 +76,7 @@ class Ics_file {
lang('provider'), lang('provider'),
'', '',
lang('name') . ': ' . $provider['first_name'] . ' ' . $provider['last_name'], lang('name') . ': ' . $provider['first_name'] . ' ' . $provider['last_name'],
lang('email') .': ' . $provider['email'], lang('email') . ': ' . $provider['email'],
lang('phone_number') . ': ' . $provider['phone_number'], lang('phone_number') . ': ' . $provider['phone_number'],
lang('address') . ': ' . $provider['address'], lang('address') . ': ' . $provider['address'],
lang('city') . ': ' . $provider['city'], lang('city') . ': ' . $provider['city'],
@ -82,8 +85,8 @@ class Ics_file {
lang('customer'), lang('customer'),
'', '',
lang('name') . ': ' . $customer['first_name'] . ' ' . $customer['last_name'], lang('name') . ': ' . $customer['first_name'] . ' ' . $customer['last_name'],
lang('email') .': ' . $customer['email'], lang('email') . ': ' . $customer['email'],
lang('phone_number') . ': ' . $customer['phone_number'], lang('phone_number') . ': ' . ($customer['phone_number'] ?? '-'),
lang('address') . ': ' . $customer['address'], lang('address') . ': ' . $customer['address'],
lang('city') . ': ' . $customer['city'], lang('city') . ': ' . $customer['city'],
lang('zip_code') . ': ' . $customer['zip_code'], lang('zip_code') . ': ' . $customer['zip_code'],