/** * 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); } }
/** * 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; }
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); }
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")); }
/** * Verify mobile phone by SMS code * * @param string $smsCode */ public static function verifyMobilePhone($smsCode) { Client::post("/verifyMobilePhone/{$smsCode}", null); }