Example #1
0
 /**
  * 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'));
 }
Example #4
0
 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());
 }
Example #6
0
 function say($a)
 {
     parent::say();
     $this->girl = $a;
     echo "{$this->girl}" . "<br>";
 }