/** * Create a new remote node nested under the provided parents (created under * root node if none given). * * @param string $name Name of the new remote folder * @param null $parents Parent IDs to give the folder * * @return array * @throws \Exception */ public function createFolder($name, $parents = null) { $retval = ['success' => false, 'data' => [], 'response_code' => null]; if (is_null($parents)) { $parents = Node::loadRoot()['id']; } if (!is_array($parents)) { $parents = [$parents]; } $response = $this->httpClient->post("{$this->account->getMetadataUrl()}nodes", ['headers' => ['Authorization' => "Bearer {$this->account->getToken()["access_token"]}"], 'json' => ['name' => $name, 'parents' => $parents, 'kind' => 'FOLDER'], 'exceptions' => false]); $retval['data'] = json_decode((string) $response->getBody(), true); if (($retval['response_code'] = $response->getStatusCode()) === 201) { $retval['success'] = true; (new Node($retval['data']))->save(); } return $retval; }