Exemplo n.º 1
0
 /**
  *
  * Add an item to the cart in overdrive and then process the cart so it is checked out.
  *
  * @param string $overDriveId
  * @param int $format
  * @param int $lendingPeriod  the number of days that the user would like to have the title chacked out. or -1 to use the default
  * @param User $user
  */
 public function checkoutOverDriveItem($overDriveId, $format, $lendingPeriod, $user)
 {
     global $logger;
     $ch = curl_init();
     $overDriveInfo = $this->_loginToOverDrive($ch, $user);
     $closeSession = true;
     $addCartResult = $this->addItemToOverDriveCart($overDriveId, $format, $user, $overDriveInfo);
     if ($addCartResult['result'] == true) {
         $processCartResult = $this->processOverDriveCart($user, $lendingPeriod, $overDriveInfo);
         if ($processCartResult['result'] == true) {
             //Delete the cache for the record
             global $memCache;
             $memCache->delete('overdrive_record_' . $overDriveId);
             $memCache->delete('overdrive_items_' . $overDriveId);
             //Record that the entry was checked out in strands
             global $configArray;
             $eContentRecord = new EContentRecord();
             $eContentRecord->whereAdd("sourceUrl like '%{$overDriveId}'");
             if ($eContentRecord->find(true)) {
                 if (isset($configArray['Strands']['APID']) && $user->disableRecommendations == 0) {
                     //Get the record for the item
                     $orderId = $user->id . '_' . time();
                     $strandsUrl = "http://bizsolutions.strands.com/api2/event/purchased.sbs?needresult=true&apid={$configArray['Strands']['APID']}&item=econtentRecord{$eContentRecord->id}::0.00::1&user={$user->id}&orderid={$orderId}";
                     $ret = file_get_contents($strandsUrl);
                     /*global $logger;
                     		$logger->log("Strands Checkout\r\n$ret", PEAR_LOG_INFO);*/
                 }
                 //Add the record to the reading history
                 require_once ROOT_DIR . '/Drivers/EContentDriver.php';
                 $eContentDriver = new EContentDriver();
                 $eContentDriver->addRecordToReadingHistory($eContentRecord, $user);
             }
         }
         curl_close($ch);
         return $processCartResult;
     } else {
         curl_close($ch);
         return $addCartResult;
     }
 }