public function testModelMutation()
 {
     $htmlLink = 'https://www.google.com/calendar/event?' . 'eid=NWdpMmFjNDkzbm5yZzh2N2poZXNhZmdldDggaWFuLmJhcmJlckBt';
     $data = json_decode('{
        "kind": "calendar#event",
        "etag": "\\"-kteSF26GsdKQ5bfmcd4H3_-u3g/MTE0NTUyNTAxOTk0MjAwMA\\"",
        "id": "1234566",
        "status": "confirmed",
        "htmlLink": "' . $htmlLink . '",
        "created": "2006-04-13T14:22:08.000Z",
        "updated": "2006-04-20T09:23:39.942Z",
        "summary": "Evening Jolt Q3 CTFL",
        "description": "6.30 - Adminning\\n9.30 - Game",
        "creator": {
          "email": "*****@*****.**",
          "displayName": "Ian Test",
          "self": true
        },
        "organizer": {
          "email": "*****@*****.**",
          "displayName": "Ian Test",
          "self": true
        },
        "start": {
          "date": "2006-04-23"
        },
        "end": {
          "date": "2006-04-24"
        },
        "iCalUID": "*****@*****.**",
        "sequence": 0,
        "reminders": {
          "useDefault": false
        }
      }', true);
     $event = new Google_Service_Calendar_Event($data);
     $date = new Google_Service_Calendar_EventDateTime();
     date_default_timezone_set('UTC');
     $dateString = Date("c");
     $summary = "hello";
     $date->setDate($dateString);
     $event->setStart($date);
     $event->setEnd($date);
     $event->setSummary($summary);
     $simpleEvent = $event->toSimpleObject();
     $this->assertEquals($dateString, $simpleEvent->start->date);
     $this->assertEquals($dateString, $simpleEvent->end->date);
     $this->assertEquals($summary, $simpleEvent->summary);
     $event2 = new Google_Service_Calendar_Event();
     $this->assertNull($event2->getStart());
 }
 public function testModelMutation()
 {
     $data = json_decode($this->calendarData, true);
     $event = new Google_Service_Calendar_Event($data);
     $date = new Google_Service_Calendar_EventDateTime();
     date_default_timezone_set('UTC');
     $dateString = Date("c");
     $summary = "hello";
     $date->setDate($dateString);
     $event->setStart($date);
     $event->setEnd($date);
     $event->setSummary($summary);
     $simpleEvent = $event->toSimpleObject();
     $this->assertEquals($dateString, $simpleEvent->start->date);
     $this->assertEquals($dateString, $simpleEvent->end->date);
     $this->assertEquals($summary, $simpleEvent->summary);
     $event2 = new Google_Service_Calendar_Event();
     $this->assertNull($event2->getStart());
 }
Example #3
0
 /**
  * Creates a Google EventDateTime object.
  *
  * @param string $dateTime
  * @param string $timeZone
  * @param bool   $allDay
  *
  * @return \Google_Service_Calendar_EventDateTime
  */
 private function createDateTime($dateTime, $timeZone, $allDay = false)
 {
     $date = new \Google_Service_Calendar_EventDateTime();
     /*
      * If an event is all day, only the date must be set
      *
      * ex.
      *  - All Day - YYYY-MM-DD
      *  - Not All Day - YYYY-MM-DD\TH:I:S:
      */
     if ($allDay) {
         $date->setDate($dateTime);
     } else {
         $date->setDateTime($dateTime);
     }
     $date->setTimeZone($timeZone);
     return $date;
 }
 public function updateEventEndDate($calendarID, $eventID, $value)
 {
     $event = $this->service->events->get($calendarID, $eventID);
     $end = new Google_Service_Calendar_EventDateTime();
     $end->setDate($value);
     $event->setEnd($end);
     $updatedEvent = $this->service->events->update($calendarID, $event->getId(), $event);
     return $updatedEvent->getUpdated();
 }
 private function update_event_on_google_calendar($event, $ext_calendar, $ext_user, $service)
 {
     $insert_event = false;
     //update event
     if ($event->getSpecialID() != "") {
         //First retrieve the event from the google API.
         try {
             $newEvent = $service->events->get($ext_calendar->getOriginalCalendarId(), $event->getSpecialID());
         } catch (Exception $e) {
             Logger::log("Fail to get event from google: " . $event->getId());
             Logger::log($e->getMessage());
             throw $e;
         }
     }
     //insert event
     if (!$newEvent instanceof Google_Service_Calendar_Event) {
         //create google event
         $newEvent = new Google_Service_Calendar_Event();
         $insert_event = true;
     }
     $newEvent->setSummary($event->getObjectName());
     $newEvent->setDescription($event->getDescription());
     $start = new Google_Service_Calendar_EventDateTime();
     $end = new Google_Service_Calendar_EventDateTime();
     //All day event
     if ($event->getTypeId() == 2) {
         $star_time = date("Y-m-d", $event->getStart()->getTimestamp());
         $end_time = date("Y-m-d", $event->getDuration()->getTimestamp());
         $start->setDate($star_time);
         $end->setDate($end_time);
     } else {
         $star_time = date(DATE_RFC3339, $event->getStart()->getTimestamp());
         $end_time = date(DATE_RFC3339, $event->getDuration()->getTimestamp());
         $start->setDateTime($star_time);
         $end->setDateTime($end_time);
     }
     $newEvent->setStart($start);
     $newEvent->setEnd($end);
     try {
         if ($insert_event) {
             // insert event
             $createdEvent = $service->events->insert($ext_calendar->getOriginalCalendarId(), $newEvent);
         } else {
             // update event
             $createdEvent = $service->events->update($ext_calendar->getOriginalCalendarId(), $newEvent->getId(), $newEvent);
         }
     } catch (Exception $e) {
         Logger::log("Fail to add event: " . $event->getId());
         Logger::log($e->getMessage());
         throw $e;
     }
     $event->setSpecialID($createdEvent->getId());
     $event->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated()));
     $event->setExtCalId($ext_calendar->getId());
     $event->save();
     $invitation = EventInvitations::findOne(array('conditions' => array('contact_id = ' . $ext_user->getContactId() . ' AND event_id =' . $event->getId())));
     if ($invitation) {
         $invitation->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated()));
         $invitation->setSpecialId($createdEvent->getId());
         $invitation->save();
     }
 }
function URSRC_calendar_create($loggin,$fileId,$loginid_name,$URSC_uld_id,$finaldate,$calenderid,$status,$form,$filesarray,$URSRC_firstname,$URSRC_lastname,$folderid){
    global $con,$ClientId,$ClientSecret,$RedirectUri,$DriveScopes,$CalenderScopes,$Refresh_Token;
    $drive = new Google_Client();
    $drive->setClientId($ClientId);
    $drive->setClientSecret($ClientSecret);
    $drive->setRedirectUri($RedirectUri);
    $drive->setScopes(array($DriveScopes,$CalenderScopes));
    $drive->setAccessType('online');
    $authUrl = $drive->createAuthUrl();
    $refresh_token= $Refresh_Token;
    $drive->refreshToken($refresh_token);
    $service = new Google_Service_Drive($drive);
    if($form=='TERMINATE'){
        $file_arraycount=1;
        try {
            $permissions = $service->permissions->listPermissions($fileId);
            $return_value= $permissions->getItems();
        } catch (Exception $e) {
            $ss_flag=0;
        }
        foreach ($return_value as $key => $value) {
            if ($value->emailAddress==$loggin) {
                $permission_id=$value->id;
            }
        }
        if($permission_id!=''){
            try {
                $service->permissions->delete($fileId, $permission_id);
                $ss_flag=1;
            } catch (Exception $e) {
                $ss_flag=0;
            }
        }
        else{

            $ss_flag=1;
        }
    }
    else{
        $value=$loggin;
        $type='user';
        $role='reader';
        $email=$loggin;
        $newPermission = new Google_Service_Drive_Permission();
        $newPermission->setValue($value);
        $newPermission->setType($type);
        $newPermission->setRole($role);
        $newPermission->setEmailAddress($email);
        try {
            $service->permissions->insert($fileId, $newPermission);
            $ss_flag=1;
        } catch (Exception $e) {
            $ss_flag=0;
        }

        if($ss_flag==1){
            if($filesarray!='')
            {
                $file_array=array();
                $allfilearray=(explode(",",$filesarray));
                foreach ($allfilearray as $value)
                {
                    $uploadfilename=$value;
                    $drivefilename=$URSRC_firstname.' '.$URSRC_lastname.'-'.$uploadfilename;
                    $extension =(explode(".",$uploadfilename));
                    if($extension[1]=='pdf'){$mimeType='application/pdf';}
                    if($extension[1]=='jpg'){$mimeType='image/jpeg';}
                    if($extension[1]=='png'){$mimeType='image/png';}
                    $file_id_value =insertFile($service,$drivefilename,'PersonalDetails',$folderid,$mimeType,$uploadfilename);
                    if($file_id_value!=''){
                        array_push($file_array,$file_id_value);
                    }
                }
                $file_arraycount=count($file_array);
            }
            else{
                $file_arraycount=1;
            }
        }


    }
    if($ss_flag==1 && $file_arraycount>0){
        $cal = new Google_Service_Calendar($drive);
        $event = new Google_Service_Calendar_Event();
        $event->setsummary($loginid_name.'  '.$status);
        $event->setDescription($URSC_uld_id);
        $start = new Google_Service_Calendar_EventDateTime();
        $start->setDate($finaldate);//setDate('2014-11-18');
        $event->setStart($start);
        $event->setEnd($start);
        try{
            $createdEvent = $cal->events->insert($calenderid, $event);
            $cal_flag=1;
        }
        catch(Exception $e){
            $cal_flag=0;
        }
    }
    $flag_array=[$ss_flag,$cal_flag,$file_id_value,$file_array];
    return $flag_array;
}
Example #7
0
require_once __DIR__ . '/../../../google.php';
// Event object
$event = new Google_Service_Calendar_Event();
$event->setSummary($summary);
// Event start date
$start = new Google_Service_Calendar_EventDateTime();
if ($allDay) {
    $start->setDate($_POST['startDate']);
} else {
    $start->setDateTime($_POST['startDate']);
}
$event->setStart($start);
// Event end date
$end = new Google_Service_Calendar_EventDateTime();
if ($allDay) {
    $end->setDate($_POST['endDate']);
} else {
    $end->setDateTime($_POST['endDate']);
}
$event->setEnd($end);
// Insert the event
$createdEvent = $googleCalendarService->events->insert($calendarId, $event);
// Get the event data
$createdEvent = $createdEvent->toSimpleObject();
$newEvent = [];
$newEvent['id'] = $createdEvent->id;
$newEvent['url'] = $createdEvent->htmlLink;
$newEvent['calendar']['id'] = $calendarId;
$newEvent['startDate'] = isset($createdEvent->start['date']) ? $createdEvent->start['date'] : $createdEvent->start['dateTime'];
$newEvent['endDate'] = isset($createdEvent->end['date']) ? $createdEvent->end['date'] : $createdEvent->end['dateTime'];
$newEvent['summary'] = isset($createdEvent->summary) ? $createdEvent->summary : '';
function URSRC_calendar_create($loginid_name, $URSC_uld_id, $finaldate, $calenderid, $status)
{
    global $con, $ClientId, $ClientSecret, $RedirectUri, $DriveScopes, $CalenderScopes, $Refresh_Token;
    $drive = new Google_Client();
    $Client = get_servicedata();
    $ClientId = $Client[0];
    $ClientSecret = $Client[1];
    $RedirectUri = $Client[2];
    $DriveScopes = $Client[3];
    $CalenderScopes = $Client[4];
    $Refresh_Token = $Client[5];
    $drive->setClientId($ClientId);
    $drive->setClientSecret($ClientSecret);
    $drive->setRedirectUri($RedirectUri);
    $drive->setScopes(array($DriveScopes, $CalenderScopes));
    $drive->setAccessType('online');
    $authUrl = $drive->createAuthUrl();
    $refresh_token = $Refresh_Token;
    $drive->refreshToken($refresh_token);
    $cal = new Google_Service_Calendar($drive);
    $event = new Google_Service_Calendar_Event();
    $event->setsummary($loginid_name . '  ' . $status);
    if ($status == 'JOIN DATE') {
        $event->setDescription($URSC_uld_id);
    }
    $start = new Google_Service_Calendar_EventDateTime();
    $start->setDate($finaldate);
    //setDate('2014-11-18');
    $event->setStart($start);
    $event->setEnd($start);
    try {
        $createdEvent = $cal->events->insert($calenderid, $event);
        $cal_flag = 1;
    } catch (Exception $e) {
        $cal_flag = 0;
    }
    return $cal_flag;
}
Example #9
0
 }
 $dtstamp = $event->getProperty('dtstamp');
 $dtstart = $event->getProperty('dtstart', 0, true);
 $dtend = $event->getProperty('dtend', 0, true);
 $uid = $event->getProperty('uid');
 preg_match('/^([0-9A-Za-z]+)-([0-9]+)\\@(.+?)$/', $uid, $matches);
 $aipoId = $matches[2];
 $start = new Google_Service_Calendar_EventDateTime();
 if (!empty($dtstart['params']) && $dtstart['params']['VALUE'] == 'DATE') {
     $start->setDate($dtstart['value']['year'] . '-' . sprintf('%02d', $dtstart['value']['month']) . '-' . sprintf('%02d', $dtstart['value']['day']));
 } else {
     $start->setDateTime($dtstart['value']['year'] . '-' . sprintf('%02d', $dtstart['value']['month']) . '-' . sprintf('%02d', $dtstart['value']['day']) . 'T' . $dtstart['value']['hour'] . ':' . $dtstart['value']['min'] . ':' . $dtstart['value']['sec'] . '+09:00');
 }
 $end = new Google_Service_Calendar_EventDateTime();
 if (!empty($dtend['params']) && $dtend['params']['VALUE'] == 'DATE') {
     $end->setDate($dtend['value']['year'] . '-' . sprintf('%02d', $dtend['value']['month']) . '-' . sprintf('%02d', $dtend['value']['day']));
 } else {
     $end->setDateTime($dtend['value']['year'] . '-' . sprintf('%02d', $dtend['value']['month']) . '-' . sprintf('%02d', $dtend['value']['day']) . 'T' . $dtend['value']['hour'] . ':' . $dtend['value']['min'] . ':' . $dtend['value']['sec'] . '+09:00');
 }
 $recurrence = array();
 $exdate = $event->getProperty('exdate');
 if (!empty($exdate)) {
     $exdateText = 'EXDATE;TZID=Asia/Tokyo:';
     $exdateLists = array();
     foreach ($exdate as $value) {
         $exdateLists[] = $value['year'] . sprintf('%02d', $value['month']) . sprintf('%02d', $value['day']) . 'T' . $value['hour'] . $value['min'] . $value['sec'];
     }
     asort($exdateLists);
     $exdateText .= implode($exdateLists, ',');
     $recurrence[] = $exdateText;
 }
function URSRC_calendar_create($loggin, $fileId, $loginid_name, $URSC_uld_id, $finaldate, $calenderid, $status, $form, $filesarray, $URSRC_firstname, $URSRC_lastname, $folderid)
{
    global $con, $ClientId, $ClientSecret, $RedirectUri, $DriveScopes, $CalenderScopes, $Refresh_Token;
    $drive = new Google_Client();
    $Client = get_servicedata();
    $ClientId = "651424197810-72ki9kr1k58v3qec0034q1bfj2og6ss8.apps.googleusercontent.com";
    //$Client[0];
    $ClientSecret = "NRY1PYuUK-NeJAZVJxUvXBeb";
    //$Client[1];
    $RedirectUri = "https://developers.google.com/oauthplayground";
    //$Client[2];
    $DriveScopes = "https://www.googleapis.com/auth/drive";
    //$Client[3];
    $CalenderScopes = "https://www.googleapis.com/auth/calendar";
    //$Client[4];
    $Refresh_Token = "1/YkIO518mEEVO9z5bdieivdpf9XVBnZN4PWZPLStyGzk";
    //$Client[5];
    $drive->setClientId($ClientId);
    $drive->setClientSecret($ClientSecret);
    $drive->setRedirectUri($RedirectUri);
    $drive->setScopes(array($DriveScopes, $CalenderScopes));
    $drive->setAccessType('online');
    $authUrl = $drive->createAuthUrl();
    $refresh_token = $Refresh_Token;
    $drive->refreshToken($refresh_token);
    $service = new Google_Service_Drive($drive);
    //    print_r($service);
    if ($form == 'TERMINATE') {
        $file_arraycount = 1;
        try {
            $permissions = $service->permissions->listPermissions($fileId);
            $return_value = $permissions->getItems();
        } catch (Exception $e) {
            $ss_flag = 0;
        }
        foreach ($return_value as $key => $value) {
            if ($value->emailAddress == $loggin) {
                $permission_id = $value->id;
            }
        }
        if ($permission_id != '') {
            try {
                $service->permissions->delete($fileId, $permission_id);
                $ss_flag = 1;
            } catch (Exception $e) {
                $ss_flag = 0;
            }
        } else {
            $ss_flag = 1;
        }
    } else {
        $value = $loggin;
        $type = 'user';
        $role = 'reader';
        $email = $loggin;
        $newPermission = new Google_Service_Drive_Permission();
        $newPermission->setValue($value);
        $newPermission->setType($type);
        $newPermission->setRole($role);
        $newPermission->setEmailAddress($email);
        try {
            $service->permissions->insert($fileId, $newPermission);
            $ss_flag = 1;
        } catch (Exception $e) {
            $ss_flag = 0;
        }
        if ($ss_flag == 1) {
            if ($filesarray != '') {
                $file_array = array();
                $allfilearray = explode(",", $filesarray);
                foreach ($allfilearray as $value) {
                    $uploadfilename = $value;
                    $drivefilename = $URSRC_firstname . ' ' . $URSRC_lastname . '-' . $uploadfilename;
                    $extension = explode(".", $uploadfilename);
                    if ($extension[1] == 'pdf') {
                        $mimeType = 'application/pdf';
                    }
                    if ($extension[1] == 'jpg') {
                        $mimeType = 'image/jpeg';
                    }
                    if ($extension[1] == 'png') {
                        $mimeType = 'image/png';
                    }
                    $file_id_value = insertFile($service, $drivefilename, 'PersonalDetails', $folderid, $mimeType, $uploadfilename);
                    if ($file_id_value != '') {
                        array_push($file_array, $file_id_value);
                    }
                }
                $file_arraycount = count($file_array);
            } else {
                $file_arraycount = 1;
            }
        }
    }
    if ($ss_flag == 1 && $file_arraycount > 0) {
        $cal = new Google_Service_Calendar($drive);
        $event = new Google_Service_Calendar_Event();
        $event->setsummary($loginid_name . '  ' . $status);
        $event->setDescription($URSC_uld_id);
        $start = new Google_Service_Calendar_EventDateTime();
        $start->setDate($finaldate);
        //setDate('2014-11-18');
        $event->setStart($start);
        $event->setEnd($start);
        try {
            $createdEvent = $cal->events->insert($calenderid, $event);
            $cal_flag = 1;
        } catch (Exception $e) {
            $cal_flag = 0;
        }
    }
    $flag_array = [$ss_flag, $cal_flag, $file_id_value, $file_array];
    return $flag_array;
}
Example #11
-6
 public function updateGoogleCalendarEvent($action)
 {
     try {
         // catch google exceptions so the whole app doesn't crash if google has a problem syncing
         $admin = Yii::app()->settings;
         if ($admin->googleIntegration) {
             if (isset($this->syncGoogleCalendarId) && $this->syncGoogleCalendarId) {
                 //                    // Google Calendar Libraries
                 //                    $timezone = date_default_timezone_get();
                 //                    require_once "protected/extensions/google-api-php-client/src/Google_Client.php";
                 //                    require_once "protected/extensions/google-api-php-client/src/contrib/Google_Service_Calendar.php";
                 //                    date_default_timezone_set($timezone);
                 //
                 //                    $client = new Google_Client();
                 //                    $client->setClientId($admin->googleClientId);
                 //                    $client->setClientSecret($admin->googleClientSecret);
                 //                    //$client->setDeveloperKey($admin->googleAPIKey);
                 //                    $client->setAccessToken($this->syncGoogleCalendarAccessToken);
                 //                    $client->setUseObjects(true); // return objects instead of arrays
                 //                    $googleCalendar = new Google_Service_Calendar($client);
                 $auth = new GoogleAuthenticator();
                 $googleCalendar = $auth->getCalendarService();
                 // check if the access token needs to be refreshed
                 // note that the google library automatically refreshes the access token if we need a new one,
                 // we just need to check if this happend by calling a google api function that requires authorization,
                 // and, if the access token has changed, save this new access token
                 $testCal = $googleCalendar->calendars->get($this->syncGoogleCalendarId);
                 //                    if($this->syncGoogleCalendarAccessToken != $client->getAccessToken()){
                 //                        $this->syncGoogleCalendarAccessToken = $client->getAccessToken();
                 //                        $this->update(array('syncGoogleCalendarAccessToken'));
                 //                    }
                 $summary = $action->actionDescription;
                 if ($action->associationType == 'contacts' || $action->associationType == 'contact') {
                     $summary = $action->associationName . ' - ' . $action->actionDescription;
                 }
                 $event = $googleCalendar->events->get($this->syncGoogleCalendarId, $action->syncGoogleCalendarEventId);
                 if (is_array($event)) {
                     $event = new Google_Service_Calendar_Event($event);
                 }
                 $event->setSummary($summary);
                 if (empty($action->dueDate)) {
                     $action->dueDate = time();
                 }
                 if ($action->allDay) {
                     $start = new Google_Service_Calendar_EventDateTime();
                     $start->setDate(date('Y-m-d', $action->dueDate));
                     $event->setStart($start);
                     if (!$action->completeDate) {
                         $action->completeDate = $action->dueDate;
                     }
                     $end = new Google_Service_Calendar_EventDateTime();
                     $end->setDate(date('Y-m-d', $action->completeDate + 86400));
                     $event->setEnd($end);
                 } else {
                     $start = new Google_Service_Calendar_EventDateTime();
                     $start->setDateTime(date('c', $action->dueDate));
                     $event->setStart($start);
                     if (!$action->completeDate) {
                         $action->completeDate = $action->dueDate;
                     }
                     // if no end time specified, make event 1 hour long
                     $end = new Google_Service_Calendar_EventDateTime();
                     $end->setDateTime(date('c', $action->completeDate));
                     $event->setEnd($end);
                 }
                 if ($action->color && $action->color != '#3366CC') {
                     $colorTable = array(10 => 'Green', 11 => 'Red', 6 => 'Orange', 8 => 'Black');
                     if (($key = array_search($action->color, $colorTable)) != false) {
                         $event->setColorId($key);
                     }
                 }
                 $newEvent = $googleCalendar->events->update($this->syncGoogleCalendarId, $action->syncGoogleCalendarEventId, $event);
             }
         }
     } catch (Exception $e) {
     }
 }