. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AnonSec Shell
AnonSec Shell
Server IP : 94.23.64.18  /  Your IP : 216.73.216.185   [ Reverse IP ]
Web Server : Apache
System : Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User : villadal ( 6036)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/villadal/www/old/booked/WebServices/Responses/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /home/villadal/www/old/booked/WebServices/Responses//ReservationResponse.php
<?php
/**
Copyright 2012-2014 Nick Korbel

This file is part of Booked Scheduler.

Booked Scheduler is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Booked Scheduler is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Booked Scheduler.  If not, see <http://www.gnu.org/licenses/>.
 */

require_once(ROOT_DIR . 'lib/WebService/namespace.php');
require_once(ROOT_DIR . 'WebServices/Responses/RecurrenceRequestResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/ResourceItemResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/ReservationAccessoryResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/CustomAttributeResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/AttachmentResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/ReservationUserResponse.php');
require_once(ROOT_DIR . 'WebServices/Responses/ReminderRequestResponse.php');

class ReservationResponse extends RestResponse
{
	public $referenceNumber;
	public $startDateTime;
	public $endDateTime;
	public $title;
	public $description;
	public $requiresApproval;
	public $isRecurring;
	public $scheduleId;
	public $resourceId;
	/**
	 * @var ReservationUserResponse
	 */
	public $owner;
	/**
	 * @var array|ReservationUserResponse[]
	 */
	public $participants = array();
	/**
	 * @var array|ReservationUserResponse[]
	 */
	public $invitees = array();
	/**
	 * @var array|CustomAttributeResponse[]
	 */
	public $customAttributes = array();
	/**
	 * @var RecurrenceRequestResponse
	 */
	public $recurrenceRule;
	/**
	 * @var array|AttachmentResponse[]
	 */
	public $attachments = array();
	/**
	 * @var array|ResourceItemResponse[]
	 */
	public $resources = array();
	/**
	 * @var array|ReservationAccessoryResponse[]
	 */
	public $accessories = array();
	/**
	 * @var ReminderRequestResponse
	 */
	public $startReminder;
	/**
	 * @var ReminderRequestResponse
	 */
	public $endReminder;

	/**
	 * @param IRestServer $server
	 * @param ReservationView $reservation
	 * @param IPrivacyFilter $privacyFilter
	 * @param array|CustomAttribute[] $attributes
	 */
	public function __construct(IRestServer $server,
								ReservationView $reservation,
								IPrivacyFilter $privacyFilter,
								$attributes = array())
	{
		$this->owner = ReservationUserResponse::Masked();

		$canViewUser = $privacyFilter->CanViewUser($server->GetSession(), $reservation);
		$canViewDetails = $privacyFilter->CanViewDetails($server->GetSession(), $reservation);

		$this->referenceNumber = $reservation->ReferenceNumber;
		$this->startDateTime = $reservation->StartDate->ToTimezone($server->GetSession()->Timezone)->ToIso();
		$this->endDateTime = $reservation->EndDate->ToTimezone($server->GetSession()->Timezone)->ToIso();
		$this->requiresApproval = $reservation->RequiresApproval();
		$this->isRecurring = $reservation->IsRecurring();
		$repeatTerminationDate = $reservation->RepeatTerminationDate != null ? $reservation->RepeatTerminationDate->ToIso() : null;
		$this->recurrenceRule = new RecurrenceRequestResponse($reservation->RepeatType, $reservation->RepeatInterval, $reservation->RepeatMonthlyType, $reservation->RepeatWeekdays, $repeatTerminationDate);
		$this->resourceId = $reservation->ResourceId;
		$this->scheduleId = $reservation->ScheduleId;
		$this->AddService($server, WebServices::GetSchedule,
						  array(WebServiceParams::ScheduleId => $reservation->ScheduleId));

		foreach ($reservation->Resources as $resource)
		{
			$this->resources[] = new ResourceItemResponse($server, $resource->Id(), $resource->GetName());
		}

		foreach ($reservation->Accessories as $accessory)
		{
			$this->accessories[] = new ReservationAccessoryResponse($server, $accessory->AccessoryId, $accessory->Name, $accessory->QuantityReserved, $accessory->QuantityAvailable);
		}

		if ($canViewDetails)
		{
			$this->title = $reservation->Title;
			$this->description = $reservation->Description;
			foreach ($attributes as $attribute)
			{
				$this->customAttributes[] = new CustomAttributeResponse($server, $attribute->Id(),
																		$attribute->Label(),
																		$reservation->GetAttributeValue($attribute->Id()));
			}
			foreach ($reservation->Attachments as $attachment)
			{
				$this->attachments[] = new AttachmentResponse($server, $attachment->FileId(), $attachment->FileName(), $reservation->ReferenceNumber);
			}
		}

		if ($canViewUser)
		{
			$this->owner = new ReservationUserResponse($server, $reservation->OwnerId, $reservation->OwnerFirstName,
													   $reservation->OwnerLastName,
													   $reservation->OwnerEmailAddress);
			foreach ($reservation->Participants as $participant)
			{
				$this->participants[] = new ReservationUserResponse($server, $participant->UserId,
																	$participant->FirstName,
																	$participant->LastName, $participant->Email);
			}
			foreach ($reservation->Invitees as $invitee)
			{
				$this->invitees[] = new ReservationUserResponse($server, $invitee->UserId,
																$invitee->FirstName, $invitee->LastName,
																$invitee->Email);
			}
		}

		if ($reservation->StartReminder != null)
		{
			$this->startReminder = new ReminderRequestResponse($reservation->StartReminder->GetValue(), $reservation->StartReminder->GetInterval());
		}
		if ($reservation->EndReminder != null)
		{
			$this->endReminder = new ReminderRequestResponse($reservation->EndReminder->GetValue(), $reservation->EndReminder->GetInterval());
		}

		if ($reservation->RequiresApproval())
		{
			$this->AddService($server, WebServices::ApproveReservation, array(WebServiceParams::ReferenceNumber => $reservation->ReferenceNumber));
		}
	}


	/**
	 * @return ReservationResponse
	 */
	public static function Example()
	{
		return new ExampleReservationResponse();
	}
}

class ExampleReservationResponse extends ReservationResponse
{
	public function __construct()
	{
		$this->accessories = array(ReservationAccessoryResponse::Example());
		$this->attachments = array(AttachmentResponse::Example());
		$this->customAttributes = array(CustomAttributeResponse::Example());
		$this->description = 'reservation description';
		$this->endDateTime = Date::Now()->ToIso();
		$this->invitees = array(ReservationUserResponse::Example());
		$this->isRecurring = true;
		$this->owner = ReservationUserResponse::Example();
		$this->participants = array(ReservationUserResponse::Example());
		$this->recurrenceRule = RecurrenceRequestResponse::Example();
		$this->referenceNumber = 'refnum';
		$this->requiresApproval = true;
		$this->resourceId = 123;
		$this->resources = array(ResourceItemResponse::Example());
		$this->scheduleId = 123;
		$this->startDateTime = Date::Now()->ToIso();
		$this->title = 'reservation title';
		$this->startReminder = ReminderRequestResponse::Example();
		$this->endReminder = ReminderRequestResponse::Example();
	}
}

Anon7 - 2022
AnonSec Team