function testMapping() { $r = new RestServer(); $r->addMap("GET", "/user", "Foo"); $r->addMap("GET", "/user/diogo", "Bar"); $r->addMap("GET", "/user/[0-9]+", "Hal"); $r->addMap("GET", "/user/[a-z]+", "Hal2"); $r->addMap("GET", "/user/[a-z]+/profile", "Hal2::profile"); $r->addMap("GET", "/user2/:name", "Named"); $r->addMap("GET", "/user2/:name/:id", "Named2"); $r->setQuery("/user"); $this->assertEquals($r->getMap("GET", "/user"), "Foo"); $this->assertEquals($r->getMap("GET", "/user/diogo"), "Bar"); $this->assertEquals($r->getMap("GET", "/user/123"), "Hal"); $this->assertEquals($r->getMap("GET", "/user/abc"), "Hal2"); $this->assertEquals($r->getMap("GET", "/user/abc/profile"), "Hal2::profile"); $this->assertEquals($r->getMap("GET", "/user/123abc"), null); $this->assertEquals($r->getMap("GET", "/user2/abc"), "Named"); $this->assertEquals($r->getMap("GET", "/user2/abc/123"), "Named2"); }
{ $r = "Method=" . $rest->getRequest()->getMethod() . "\n"; $r .= "URI=" . $rest->getRequest()->getRequestURI() . "\n"; foreach ($rest->getRequest()->getGET() as $key => $value) { $r .= "GET[" . $key . "]=" . $value . "\n"; } foreach ($rest->getRequest()->getPOST() as $key => $value) { $r .= "POST[" . $key . "]=" . $value . "\n"; } $rest->getResponse()->setResponse(nl2br($r)); return $rest; } } $q = isset($_GET["q"]) ? $_GET["q"] : ""; $r = new RestServer($q); $r->addMap("GET", "/Foo", "Foobar"); $r->addMap("POST", "/Foo", "Foobar"); $r->addMap("GET", "/Foo/bar", "Foobar::bar"); $r->addMap("GET", "/Foo/hello", "Foobar::foo"); $r->addMap("POST", "/Foo/hello", "Foobar::foo"); $r->addMap("GET", "/Foo/hello/[\\w]*", "Foobar::foo"); $r->addMap("GET", "/Foo/restricted/basic", "Foobar::auth"); $r->addMap("GET", "/Foo/restricted/digest", "Foobar::auth"); $r->addMap("GET", "/Foo/bench", "Foobar::bench"); $r->addMap("GET", "/Lambda", function ($rest) { $rest->getResponse()->setResponse("Hello Closure!"); return $rest; }); $r->addMap("GET", "/hello/:name", function ($rest) { $rest->getResponse()->setResponse("Hello, " . $rest->getRequest()->getParameter("name") . "!"); return $rest;
// bootstrap wp require_once "../../../../wp-load.php"; require_once "../includes/mm-constants.php"; require_once "../includes/init.php"; require_once "classes/class.response.php"; require_once "classes/class.utils.php"; require_once "include/loadLibrary.php"; require_once 'controllers/class.webcontroller.php'; require_once 'controllers/class.membercontroller.php'; require_once 'controllers/class.releasecontroller.php'; require_once 'include/constants.php'; $_GET["q"] = isset($_GET["q"]) && $_GET["q"] != null ? $_GET["q"] : ""; $rest = new RestServer($_GET["q"]); $ref = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ""; $ip = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : ""; $rest->addMap("GET", "/?", "WebController"); if (MM_Utils::isMemberMouseActive() && MM_MemberMouseService::hasPermission(MM_MemberMouseService::$FEATURE_API)) { $rest->addMap("GET", "/createMember", "MemberController::createMember"); $rest->addMap("POST", "/createMember", "MemberController::createMember"); $rest->addMap("GET", "/purchaseBundle", "MemberController::purchaseBundle"); $rest->addMap("POST", "/purchaseBundle", "MemberController::purchaseBundle"); $rest->addMap("GET", "/updateMember", "MemberController::updateMember"); $rest->addMap("POST", "/updateMember", "MemberController::updateMember"); $rest->addMap("GET", "/getMember", "MemberController::getMember"); $rest->addMap("POST", "/getMember", "MemberController::getMember"); // added as temporary end point for SamCart to use until our new API is released $rest->addMap("GET", "/addMember", "MemberController::addMember"); $rest->addMap("POST", "/addMember", "MemberController::addMember"); $rest->addMap("GET", "/addBundle", "MemberController::addBundle"); $rest->addMap("POST", "/addBundle", "MemberController::addBundle"); $rest->addMap("GET", "/removeBundle", "MemberController::removeBundle");