mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge pull request #12290 from appwrite/fix-sdk-generator-for-response-enums
Fix: Project SDK enum names
This commit is contained in:
@@ -757,28 +757,28 @@ abstract class Format
|
||||
case 'updateAuthMethod':
|
||||
switch ($param) {
|
||||
case 'methodId':
|
||||
return 'AuthMethod';
|
||||
return 'ProjectAuthMethodId';
|
||||
}
|
||||
break;
|
||||
case 'getPolicy':
|
||||
switch ($param) {
|
||||
case 'policyId':
|
||||
return 'ProjectPolicy';
|
||||
return 'ProjectPolicyId';
|
||||
}
|
||||
break;
|
||||
case 'getOAuth2Provider':
|
||||
switch ($param) {
|
||||
case 'providerId':
|
||||
return 'OAuthProvider';
|
||||
return 'ProjectOAuthProviderId';
|
||||
}
|
||||
break;
|
||||
case 'getEmailTemplate':
|
||||
case 'updateEmailTemplate':
|
||||
switch ($param) {
|
||||
case 'templateId':
|
||||
return 'EmailTemplateType';
|
||||
return 'ProjectEmailTemplateId';
|
||||
case 'locale':
|
||||
return 'EmailTemplateLocale';
|
||||
return 'ProjectEmailTemplateLocale';
|
||||
}
|
||||
break;
|
||||
case 'getUsage':
|
||||
@@ -787,6 +787,39 @@ abstract class Format
|
||||
return 'ProjectUsageRange';
|
||||
}
|
||||
break;
|
||||
case 'updateProtocol':
|
||||
switch ($param) {
|
||||
case 'protocolId':
|
||||
return 'ProjectProtocolId';
|
||||
}
|
||||
break;
|
||||
case 'updateService':
|
||||
switch ($param) {
|
||||
case 'serviceId':
|
||||
return 'ProjectServiceId';
|
||||
}
|
||||
break;
|
||||
case 'updateSMTP':
|
||||
case 'createSMTPTest':
|
||||
switch ($param) {
|
||||
case 'secure':
|
||||
return 'ProjectSMTPSecure';
|
||||
}
|
||||
break;
|
||||
case 'updateOAuth2Google':
|
||||
switch ($param) {
|
||||
case 'prompt':
|
||||
return 'ProjectOAuth2GooglePrompt';
|
||||
}
|
||||
break;
|
||||
case 'createKey':
|
||||
case 'createEphemeralKey':
|
||||
case 'updateKey':
|
||||
switch ($param) {
|
||||
case 'scopes':
|
||||
return 'ProjectKeyScopes';
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'projects':
|
||||
@@ -1019,8 +1052,12 @@ abstract class Format
|
||||
return self::REQUEST_PARAMETER_OVERRIDES;
|
||||
}
|
||||
|
||||
public function getResponseEnumName(string $model, string $param): ?string
|
||||
public function getResponseEnumName(string $model, string $param, ?string $enumSDKName = null): ?string
|
||||
{
|
||||
if ($enumSDKName) {
|
||||
return $enumSDKName;
|
||||
}
|
||||
|
||||
if ($param === 'type' && \str_starts_with($model, 'platform') && $model !== 'platformList') {
|
||||
return 'PlatformType';
|
||||
}
|
||||
|
||||
@@ -988,13 +988,13 @@ class OpenAPI3 extends Format
|
||||
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
|
||||
if ($rule['array']) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['enum'] = \array_values($rule['enum']);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name, $rule['enumSDKName'] ?? null);
|
||||
if ($enumName) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
|
||||
}
|
||||
} else {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['enum'] = \array_values($rule['enum']);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name, $rule['enumSDKName'] ?? null);
|
||||
if ($enumName) {
|
||||
$output['components']['schemas'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;
|
||||
}
|
||||
|
||||
@@ -975,13 +975,13 @@ class Swagger2 extends Format
|
||||
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
|
||||
if ($rule['array']) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['items']['enum'] = \array_values($rule['enum']);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name, $rule['enumSDKName'] ?? null);
|
||||
if ($enumName) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
|
||||
}
|
||||
} else {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['enum'] = \array_values($rule['enum']);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name);
|
||||
$enumName = $this->getResponseEnumName($model->getType(), $name, $rule['enumSDKName'] ?? null);
|
||||
if ($enumName) {
|
||||
$output['definitions'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ class ProjectAuthMethod extends Model
|
||||
'default' => '',
|
||||
'example' => 'email-password',
|
||||
'enum' => \array_keys(Config::getParam('auth', [])),
|
||||
'enumSDKName' => 'ProjectAuthMethodId',
|
||||
])
|
||||
->addRule('enabled', [
|
||||
'type' => self::TYPE_BOOLEAN,
|
||||
|
||||
@@ -17,6 +17,7 @@ class ProjectProtocol extends Model
|
||||
'default' => '',
|
||||
'example' => 'graphql',
|
||||
'enum' => \array_keys(Config::getParam('protocols', [])),
|
||||
'enumSDKName' => 'ProjectProtocolId',
|
||||
])
|
||||
->addRule('enabled', [
|
||||
'type' => self::TYPE_BOOLEAN,
|
||||
|
||||
@@ -17,6 +17,7 @@ class ProjectService extends Model
|
||||
'default' => '',
|
||||
'example' => 'sites',
|
||||
'enum' => \array_keys(\array_filter(Config::getParam('services', []), fn ($element) => $element['optional'])),
|
||||
'enumSDKName' => 'ProjectServiceId',
|
||||
])
|
||||
->addRule('enabled', [
|
||||
'type' => self::TYPE_BOOLEAN,
|
||||
|
||||
Reference in New Issue
Block a user