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
commit cb25e850e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

View file

@ -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;

View file

@ -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;