<?php 
 
/** 
 * Copyright (c) 2011 Fernando Ribeiro 
 * All rights reserved. 
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions 
 * are met: 
 * 
 *   * Redistributions of source code must retain the above copyright 
 *     notice, this list of conditions and the following disclaimer. 
 * 
 *   * Redistributions in binary form must reproduce the above copyright 
 *     notice, this list of conditions and the following disclaimer in 
 *     the documentation and/or other materials provided with the 
 *     distribution. 
 * 
 *   * Neither the names of the copyright holders nor the names of the 
 *     contributors may be used to endorse or promote products derived 
 *     from this software without specific prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 * POSSIBILITY OF SUCH DAMAGE. 
 * 
 * @package     Netcrash 
 * @subpackage  Groupon 
 * @author      Fernando Andre <netriver+GrouponApi at gmail dit com> 
 * @copyright   2011 Fernando Ribeiro http://netcrash.wordpress.com 
 * @license     http://www.opensource.org/licenses/bsd-license.php  BSD License 
 * @link 
 * @version     @@PACKAGE_VERSION@@ 
 */ 
 
 
require '__autoload.php'; 
 
$api = new \Netcrash\Groupon\apiClient(); 
 
// 41,17567, -8,58766 --- groupon of map location 
$wc = new \Netcrash\Groupon\DataObject\WebClient(); 
$wc->setIP('178.166.91.82'); // use a real IP 
$wc->setLat(41,17567)->setLng(-8,58766); 
 
// Your token here! 
$api->setToken("API_KEY"); 
// Only tested with version 2 
$api->setVersion(2); 
 
// Webclient is the user for witch the request is being made 
// your website user it's from here it's used the location lat and long 
// values 
$api->setWebClient($wc); 
 
// Good for dev testing 
$api->setDriver(new \Netcrash\Groupon\ApiQuery\Driver\GTest()); 
 
print "Getting list of divisions:\n"; 
$a = $api->getDivisions(); 
 
if (is_object($a)) { 
    foreach ($a as $Obj) { 
        print $Obj->getId().PHP_EOL; 
    } 
    /* 
     * also a division can be specified by using 
      * 
     * $div = new \Groupon\DataObject\Division(); 
     * $div->setId("something"); 
     * 
     */ 
 
    $api->setDivision($Obj); 
} 
 
$a = null; 
 
print "GETTING DEALS\n"; 
$a = $api->getDeals(); 
print $api->getDriver()->getUrl() . PHP_EOL; 
if (is_object($a)) { 
    foreach ($a as $Obj) { 
        print $Obj->getId() . ($Obj->isSoldOut() ? " sold out..." : " Available! ") . PHP_EOL; 
    } 
} 
 
print "DETAIL\n"; 
$a = null; 
try { 
    $a = $api->getDealById($Obj->getId()); 
    print $a->getTitle() . ", " . 
            $a->getId() . " -- " . $a->getSoldQuantity() 
            . PHP_EOL; 
    $o = $a->getOptions(); 
    if ( $o->count() > 0 ) { 
        print "list of details:\n"; 
        foreach ($o as $detail ) { 
            print $a->getId() . " <- " . $detail->getDiscountPercent() . PHP_EOL; 
        } 
    } 
} catch (Exception $e) { 
    print $e->getMessage()."\n"; 
    print $api->getDriver()->getUrl() . PHP_EOL; 
} 
 
print $api->getDriver()->getUrl() . PHP_EOL; 
 
 |