diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8efa47260..85e79c27c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,6 +38,7 @@ docker run --rm --interactive --tty --volume "%cd%":/app composer install First, create a new class for the new language in this directory: [/src/SDK/Language](https://github.com/appwrite/sdk-generator/tree/master/src/SDK/Language) + You can use the interface to know which methods are required to be implemented: [/src/SDK/Language.php](https://github.com/appwrite/sdk-generator/blob/master/src/SDK/Language.php) diff --git a/example.php b/example.php index fa9087fcf..84531fdec 100644 --- a/example.php +++ b/example.php @@ -19,8 +19,6 @@ use Appwrite\SDK\Language\CSharp; use Appwrite\SDK\Language\Flutter; -$languages = ['web', 'node', 'php', 'python', 'ruby', 'dart', 'go', 'java', 'swift', 'typescript', 'deno', 'http', 'csharp']; - try { function getSSLPage($url) { @@ -195,7 +193,7 @@ function getSSLPage($url) { $sdk->generate(__DIR__ . '/examples/dart'); - // Dart + // Flutter $sdk = new SDK(new Flutter(), new Swagger2($spec)); $sdk diff --git a/mock/templates/deno.ts b/mock/templates/deno.ts deleted file mode 100644 index cabe7db90..000000000 --- a/mock/templates/deno.ts +++ /dev/null @@ -1,26 +0,0 @@ -const { stderr, stdout } = Deno -import * as sdk from "https://deno.land/x/appwrite/mod.ts"; - -stderr.writeSync(new TextEncoder().encode('a\n')); -stdout.writeSync(new TextEncoder().encode('b\n')); - -Deno.exit(1); // the exit code is optional and defaults to 0 - -// Init SDK -let client = new sdk.Client(); - -let users = new sdk.Users(client); - -client - .setEndpoint('http://localhost/v1') - .setProject('5e63e0a61d9c2') // Your project ID - .setKey('b3f5137087886e76f60c4a7a4f6a346bfb2af2212ead5b3327719802da106b909a0244f419016d3f03d6b80922764a5783c2a74f4912d2a4a281ca7f6166fbce7544ddb4524af6334ee757e0ec2e928971d875a5dd68b948ef347e1c8a6dc27b82f6d98cd5c4f9e79abc45c6c829edd3e254bc2d708b12797ed71a05fb6facbb') // Your secret API key -; - -let promise = users.create('emailxx@example.com', 'password'); - -promise.then(function (response) { - console.log(response); -}, function (error) { - console.log(error); -}); diff --git a/src/SDK/Language/Dart.php b/src/SDK/Language/Dart.php index 0ac208e73..1237771f6 100644 --- a/src/SDK/Language/Dart.php +++ b/src/SDK/Language/Dart.php @@ -320,4 +320,3 @@ public function getFiles() ]; } } - diff --git a/src/SDK/Language/Flutter.php b/src/SDK/Language/Flutter.php index 82c015844..82f43a663 100644 --- a/src/SDK/Language/Flutter.php +++ b/src/SDK/Language/Flutter.php @@ -2,9 +2,7 @@ namespace Appwrite\SDK\Language; -use Appwrite\SDK\Language; - -class Flutter extends Language { +class Flutter extends Dart { /** * @var array @@ -13,17 +11,6 @@ class Flutter extends Language { 'packageName' => 'packageName', ]; - /** - * @param string $name - * @return $this - */ - public function setPackageName($name) - { - $this->setParam('packageName', $name); - - return $this; - } - /** * @return string */ @@ -32,219 +19,6 @@ public function getName() return 'Flutter'; } - /** - * Get Language Keywords List - * - * @return array - */ - public function getKeywords() - { - return [ - "abstract", - "dynamic", - "implements", - "show", - "as", - "else", - "import", - "static", - "assert", - "enum", - "in", - "super", - "async", - "export", - "interface", - "switch", - "await", - "extends", - "is", - "sync", - "break", - "external", - "library", - "this", - "case", - "factory", - "mixin", - "throw", - "catch", - "false", - "new", - "true", - "class", - "final", - "null", - "try", - "const", - "finally", - "on", - "typedef", - "continue", - "for", - "operator", - "var", - "covariant", - "Function", - "part", - "void", - "default", - "get", - "rethrow", - "while", - "deferred", - "hide", - "return", - "with", - "do", - "if", - "set", - "yield", - ]; - } - - /** - * @param $type - * @return string - */ - public function getTypeName($type) - { - switch ($type) { - case self::TYPE_INTEGER: - return 'int'; - break; - case self::TYPE_STRING: - return 'String'; - break; - case self::TYPE_FILE: - return 'MultipartFile'; - break; - case self::TYPE_BOOLEAN: - return 'bool'; - break; - case self::TYPE_ARRAY: - return 'List'; - case self::TYPE_OBJECT: - return 'dynamic'; - break; - } - - return $type; - } - - /** - * @param array $param - * @return string - */ - public function getParamDefault(array $param) - { - $type = $param['type'] ?? ''; - $default = $param['default'] ?? ''; - $required = $param['required'] ?? ''; - - if($required) { - return ''; - } - - $output = ' = '; - - if(empty($default) && $default !== 0 && $default !== false) { - switch ($type) { - case self::TYPE_OBJECT: - $output .= '{}'; - break; - case self::TYPE_NUMBER: - case self::TYPE_INTEGER: - $output .= '0'; - break; - case self::TYPE_BOOLEAN: - $output .= 'false'; - break; - case self::TYPE_ARRAY: - $output .= '[]'; - break; - case self::TYPE_STRING: - $output .= "''"; - break; - } - } - else { - switch ($type) { - case self::TYPE_OBJECT: - case self::TYPE_NUMBER: - case self::TYPE_INTEGER: - $output .= $default; - break; - case self::TYPE_ARRAY: - $output .= 'const '.$default; - break; - case self::TYPE_BOOLEAN: - $output .= ($default) ? 'true' : 'false'; - break; - case self::TYPE_STRING: - $output .= "'{$default}'"; - break; - } - } - - return $output; - } - - /** - * @param array $param - * @return string - */ - public function getParamExample(array $param) - { - $type = $param['type'] ?? ''; - $example = $param['example'] ?? ''; - - $output = ''; - - if(empty($example) && $example !== 0 && $example !== false) { - switch ($type) { - case self::TYPE_FILE: - $output .= 'await MultipartFile.fromFile(\'./path-to-files/image.jpg\', \'image.jpg\')'; - break; - case self::TYPE_NUMBER: - case self::TYPE_INTEGER: - $output .= '0'; - break; - case self::TYPE_BOOLEAN: - $output .= 'false'; - break; - case self::TYPE_STRING: - $output .= "''"; - break; - case self::TYPE_OBJECT: - $output .= '{}'; - break; - case self::TYPE_ARRAY: - $output .= '[]'; - break; - } - } - else { - switch ($type) { - case self::TYPE_OBJECT: - case self::TYPE_FILE: - case self::TYPE_NUMBER: - case self::TYPE_INTEGER: - case self::TYPE_ARRAY: - $output .= $example; - break; - case self::TYPE_BOOLEAN: - $output .= ($example) ? 'true' : 'false'; - break; - case self::TYPE_STRING: - $output .= "'{$example}'"; - break; - } - } - - return $output; - } - /** * @return array */ @@ -320,4 +94,3 @@ public function getFiles() ]; } } - diff --git a/src/SDK/SDK.php b/src/SDK/SDK.php index 2c74d0b78..03c949f42 100644 --- a/src/SDK/SDK.php +++ b/src/SDK/SDK.php @@ -465,10 +465,8 @@ public function generate($target) 'sdk' => $this->getParams(), ]; - foreach ($this->language->getFiles() as $file) { /** @var $file [] */ - - /* @var $template \Twig\TemplateWrapper */ - $template = $this->twig->load($file['template']); + foreach ($this->language->getFiles() as $file) { + $template = $this->twig->load($file['template']); /* @var $template \Twig\TemplateWrapper */ $destination = $target . '/' . $file['destination']; $block = $file['block'] ?? null; $minify = $file['minify'] ?? false; diff --git a/src/Spec/OpenAPI3.php b/src/Spec/OpenAPI3.php deleted file mode 100644 index ae1145b3c..000000000 --- a/src/Spec/OpenAPI3.php +++ /dev/null @@ -1,14 +0,0 @@ -getAttribute('servers.0.url', 'https://example.com/v1'); - } -} \ No newline at end of file