Ejemplo n.º 1
0
 /**
  * Save file on the cloud
  *
  * @throws CloudException
  */
 public function save()
 {
     if (!$this->isDirty()) {
         return;
     }
     $data = array("name" => $this->getName(), "ACL" => $this->get("ACL"), "mime_type" => $this->getMimeType(), "metaData" => $this->getMeta());
     if ($this->isExternal()) {
         $data["url"] = $this->getUrl();
         $resp = Client::post("/files/{$this->getName()}", $data);
         $this->mergeAfterSave($resp);
     } else {
         $key = static::genFileKey();
         $key = "{$key}." . pathinfo($this->getName(), PATHINFO_EXTENSION);
         $data["key"] = $key;
         $data["__type"] = "File";
         $resp = Client::post("/fileTokens", $data);
         if (!isset($resp["token"])) {
             // adapt for S3, when there is no token
             $resp["token"] = null;
         }
         try {
             $uploader = SimpleUploader::createUploader($resp["provider"]);
             $uploader->initialize($resp["upload_url"], $resp["token"]);
             $uploader->upload($this->_source, $this->getMimeType(), $key);
         } catch (\Exception $ex) {
             $this->destroy();
             throw $ex;
         }
         foreach (array("upload_url", "token") as $k) {
             if (isset($resp[$k])) {
                 unset($resp[$k]);
             }
         }
         $this->mergeAfterSave($resp);
     }
 }
Ejemplo n.º 2
0
 /**
  * Issue a batch request
  *
  * @param array  $requests     Array of requests in batch op
  * @param string $sessionToken Session token of a User
  * @param array  $headers      Optional headers
  * @param bool   $useMasterkey Use master key or not, optional
  * @return array              JSON decoded associated array
  * @see self::request()
  */
 public static function batch($requests, $sessionToken = null, $headers = array(), $useMasterKey = null)
 {
     $response = Client::post("/batch", array("requests" => $requests), $sessionToken, $headers, $useMasterKey);
     $batchRequestError = new BatchRequestError();
     foreach ($requests as $i => $req) {
         if (isset($response[$i]["error"])) {
             $batchRequestError->add($req, $response[$i]["error"]);
         }
     }
     if (!$batchRequestError->isEmpty()) {
         throw $batchRequestError;
     }
     return $response;
 }
Ejemplo n.º 3
0
 public function testDeleteTestObject()
 {
     $data = Client::post("/classes/TestObject", array("name" => "alice", "story" => "in wonderland"));
     $this->assertArrayHasKey("objectId", $data);
     Client::delete("/classes/TestObject/{$data['objectId']}");
     $obj = Client::get("/classes/TestObject/{$data['objectId']}");
     $this->assertEmpty($obj);
 }
Ejemplo n.º 4
0
 public function testUserLogin()
 {
     $data = array("username" => "testuser", "password" => "5akf#a?^G", "phone" => "18612340000");
     $resp = Client::post("/users", $data);
     $this->assertNotEmpty($resp["objectId"]);
     $this->assertNotEmpty($resp["sessionToken"]);
     $id = $resp["objectId"];
     $resp = Client::get("/users/me", array("session_token" => $resp["sessionToken"]));
     $this->assertNotEmpty($resp["objectId"]);
     Client::delete("/users/{$id}", $resp["sessionToken"]);
     // Raise 211: Could not find user.
     $this->setExpectedException("LeanCloud\\CloudException", null, 211);
     $resp = Client::get("/users/me", array("session_token" => "non-existent-token"));
 }
Ejemplo n.º 5
0
 /**
  * Verify mobile phone by SMS code
  *
  * @param string $smsCode
  */
 public static function verifyMobilePhone($smsCode)
 {
     Client::post("/verifyMobilePhone/{$smsCode}", null);
 }