Merge pull request #2857 from appwrite/feat-spec-nested-maps

Handle JSON rules as objects instead of strings
This commit is contained in:
Christy Jacob
2022-03-01 13:49:39 +04:00
committed by GitHub
4 changed files with 19 additions and 18 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -453,10 +453,14 @@ class OpenAPI3 extends Format
switch ($rule['type']) {
case 'string':
case 'json':
$type = 'string';
break;
case 'json':
$type = 'object';
$output['components']['schemas'][$model->getType()]['properties'][$name]['additionalProperties'] = true;
break;
case 'integer':
$type = 'integer';
$format = 'int32';
@@ -516,9 +520,6 @@ class OpenAPI3 extends Format
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['format'] = $format;
}
if($items) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
}
} else {
$output['components']['schemas'][$model->getType()]['properties'][$name] = [
'type' => $type,
@@ -530,9 +531,9 @@ class OpenAPI3 extends Format
$output['components']['schemas'][$model->getType()]['properties'][$name]['format'] = $format;
}
if($items) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
}
}
if($items) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items'] = $items;
}
if (!in_array($name, $required)) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['nullable'] = true;
@@ -444,10 +444,14 @@ class Swagger2 extends Format
switch ($rule['type']) {
case 'string':
case 'json':
$type = 'string';
break;
case 'json':
$type = 'object';
$output['definitions'][$model->getType()]['properties'][$name]['additionalProperties'] = true;
break;
case 'integer':
$type = 'integer';
$format = 'int32';
@@ -469,7 +473,7 @@ class Swagger2 extends Format
default:
$type = 'object';
$rule['type'] = ($rule['type']) ? $rule['type'] : 'none';
$rule['type'] = ($rule['type']) ?: 'none';
if(\is_array($rule['type'])) {
if($rule['array']) {
@@ -508,14 +512,10 @@ class Swagger2 extends Format
$output['definitions'][$model->getType()]['properties'][$name]['items']['format'] = $format;
}
if($items) {
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
}
} else {
$output['definitions'][$model->getType()]['properties'][$name] = [
'type' => $type,
'description' => $rule['description'] ?? '',
//'default' => $rule['default'] ?? null,
'x-example' => $rule['example'] ?? null,
];
@@ -523,9 +523,9 @@ class Swagger2 extends Format
$output['definitions'][$model->getType()]['properties'][$name]['format'] = $format;
}
if($items) {
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
}
}
if($items) {
$output['definitions'][$model->getType()]['properties'][$name]['items'] = $items;
}
if (!in_array($name, $required)) {
$output['definitions'][$model->getType()]['properties'][$name]['x-nullable'] = true;