/** * @param string $dir dir * @param DataContainer\Api $api api */ private function writeFiles($dir, DataContainer\Api $api) { if (!is_dir($dir)) { mkdir($dir, 0777, true); } $files = array(); $files['api-docs.json'] = json_encode($api->getApiDocs()->toArray()); foreach ($api->getResources() as $path => $resource) { $files[sprintf('%s.json', $path)] = json_encode($resource->toArray()); } foreach ($files as $path => $content) { file_put_contents($dir . DIRECTORY_SEPARATOR . $path, $content); } }
/** * {@inheritdoc} */ public function transform(ApiModel $dokapiApi) { $api = new DataContainer\Api($dokapiApi->getVersion(), $this->generateApiDocs($dokapiApi)); foreach ($dokapiApi->getResources() as $dokapiResource) { $resource = new Model\Resource(); $resource->setApiVersion($dokapiApi->getVersion()); $resource->setBasePath($dokapiApi->getPath()); $resource->setResourcePath($dokapiResource->getId()); $resource->setConsumes($dokapiApi->getConsumes()); $resource->setProduces($dokapiApi->getProduces()); $this->addOperations($dokapiResource, $resource); $this->addModels($dokapiApi->getModels(), $resource); $api->addResource($dokapiResource->getId(), $resource); } return $api; }