/** * Tries to find an auth server and login * * @param $email * @param $password * @return bool * @throws \Exception */ public function login($email, $password) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { throw new \Exception('Not a valid email'); } $this->email = $email; $this->password = $password; $this->status = self::STATUS_UNKNOWN; $discover = new Discover(); if ($cfg = $discover->imap($email)) { if ($discover->mxServerRoot) { // assure that it's not Google or some other if (in_array($discover->mxServerRoot, ['google.com', 'outlook.com'])) { if ($this->config->tryRestricted) { return $this->imapAuth('imap.' . $discover->mxServerRoot); } $this->status = self::STATUS_OAUTH_NEEDED; return false; } } return $this->imapAuth($cfg['host'], $cfg['port']); } else { $domain = explode('@', $email); return $this->imapAuth('imap.' . $domain[1]); } }
function testDiscover() { $discover = new Discover(); try { $result = $discover->handle(new SampleAPI(), "serverkey", null, "post"); $this->assertTrue(false); } catch (Exception $e) { if ($e instanceof MashapeException) { $this->assertTrue(true); } else { $this->assertTrue(false); } } }
public function save_order() { $discover_array = $_POST['discover_id']; $order_array = $_POST['order']; $discover = new Discover(); foreach ($discover_array as $key => $value) { $discover_id = $value; $discover_order = $order_array[$key]; $discover->update('Discover', array('sequence' => $discover_order), 'id=' . $discover_id); } Flash::set('success', __('This discover sequence has been saved.')); redirect(get_url('discover')); }
public static function handleAPI($instance, $serverKey) { header("Content-type: application/json"); try { if ($instance == null) { throw new MashapeException(EXCEPTION_INSTANCE_NULL, EXCEPTION_SYSTEM_ERROR_CODE); } $requestMethod = isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : null; $params; if ($requestMethod == 'post') { $params = array_merge(self::getAllParams($_GET), self::getAllParams($_POST)); } else { if ($requestMethod == 'get') { $params = self::getAllParams($_GET); } else { if ($requestMethod == 'put' || $requestMethod == 'delete') { $params = HttpUtils::parseQueryString(file_get_contents("php://input")); } else { throw new MashapeException(EXCEPTION_NOTSUPPORTED_HTTPMETHOD, EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE); } } } $operation = isset($params[OPERATION]) ? $params[OPERATION] : null; unset($params[OPERATION]); // remove the operation parameter if (empty($operation)) { $operation = "call"; } if ($operation != null) { $result; switch (strtolower($operation)) { case "discover": header("Content-type: application/xml"); $discover = new Discover(); $result = $discover->handle($instance, $serverKey, $params, $requestMethod); break; case "call": $call = new Call(); $result = $call->handle($instance, $serverKey, $params, $requestMethod); break; default: throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE); } $jsonpCallback = isset($params[CALLBACK]) ? $params[CALLBACK] : null; if (empty($jsonpCallback)) { // Print the output echo $result; } else { if (self::validateCallback($jsonpCallback)) { echo $jsonpCallback . '(' . $result . ')'; } else { throw new MashapeException(EXCEPTION_INVALID_CALLBACK, EXCEPTION_SYSTEM_ERROR_CODE); } } } else { // Operation not supported throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE); } } catch (Exception $e) { //If it's an ApizatorException then print the specific code if ($e instanceof MashapeException) { header("Content-type: application/json"); $code = $e->getCode(); switch ($code) { case EXCEPTION_XML_CODE: header("HTTP/1.0 500 Internal Server Error"); break; case EXCEPTION_INVALID_HTTPMETHOD_CODE: header("HTTP/1.0 405 Method Not Allowed"); break; case EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE: header("HTTP/1.0 405 Method Not Allowed"); break; case EXCEPTION_NOTSUPPORTED_OPERATION_CODE: header("HTTP/1.0 501 Not Implemented"); break; case EXCEPTION_METHOD_NOTFOUND_CODE: header("HTTP/1.0 404 Not Found"); break; case EXCEPTION_AUTH_INVALID_CODE: self::setUnauthorizedResponse(); break; case EXCEPTION_AUTH_INVALID_SERVERKEY_CODE: self::setUnauthorizedResponse(); break; case EXCEPTION_REQUIRED_PARAMETERS_CODE: header("HTTP/1.0 200 OK"); break; case EXCEPTION_GENERIC_LIBRARY_ERROR_CODE: header("HTTP/1.0 500 Internal Server Error"); break; case EXCEPTION_INVALID_APIKEY_CODE: self::setUnauthorizedResponse(); break; case EXCEPTION_EXCEEDED_LIMIT_CODE: self::setUnauthorizedResponse(); break; case EXCEPTION_SYSTEM_ERROR_CODE: header("HTTP/1.0 500 Internal Server Error"); break; } echo JsonUtils::serializeError($e->getMessage(), $code); } else { //Otherwise print a "generic exception" code header("HTTP/1.0 500 Internal Server Error"); echo JsonUtils::serializeError($e->getMessage(), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } } }
public function testRetrieveDocument() { $this->assertSame($this->getDocumentMock(), $this->object->getDocument()); }
function say($a) { parent::say(); $this->girl = $a; echo "{$this->girl}" . "<br>"; }