Merge pull request #10538 from appwrite/respone-models-enum-names

chore: include response model enum names
This commit is contained in:
Jake Barnby 2025-09-23 18:23:46 +12:00 committed by GitHub
commit dce014993f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 409 additions and 128 deletions

View file

@ -46468,7 +46468,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46563,7 +46564,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46660,7 +46662,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46757,7 +46760,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46837,7 +46841,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46924,7 +46929,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47021,7 +47027,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47108,7 +47115,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47195,7 +47203,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47282,7 +47291,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47397,7 +47407,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47483,7 +47494,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47581,7 +47593,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -53796,7 +53809,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -56535,7 +56549,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -35338,7 +35338,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35433,7 +35434,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35530,7 +35532,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35627,7 +35630,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35707,7 +35711,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35794,7 +35799,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35891,7 +35897,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35978,7 +35985,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36065,7 +36073,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36152,7 +36161,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36267,7 +36277,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36353,7 +36364,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36451,7 +36463,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -40984,7 +40997,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -41449,7 +41463,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -46468,7 +46468,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46563,7 +46564,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46660,7 +46662,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46757,7 +46760,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46837,7 +46841,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46924,7 +46929,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47021,7 +47027,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47108,7 +47115,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47195,7 +47203,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47282,7 +47291,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47397,7 +47407,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47483,7 +47494,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47581,7 +47593,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -53796,7 +53809,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -56535,7 +56549,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -35338,7 +35338,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35433,7 +35434,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35530,7 +35532,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35627,7 +35630,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35707,7 +35711,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35794,7 +35799,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35891,7 +35897,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35978,7 +35985,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36065,7 +36073,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36152,7 +36161,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36267,7 +36277,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36353,7 +36364,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36451,7 +36463,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -40984,7 +40997,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -41449,7 +41463,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -46405,7 +46405,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46500,7 +46501,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46597,7 +46599,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46694,7 +46697,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46774,7 +46778,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46861,7 +46866,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46958,7 +46964,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47045,7 +47052,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47132,7 +47140,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47219,7 +47228,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47334,7 +47344,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47420,7 +47431,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47518,7 +47530,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -53752,7 +53765,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -56584,7 +56598,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -35366,7 +35366,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35461,7 +35462,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35558,7 +35560,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35655,7 +35658,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35735,7 +35739,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35822,7 +35827,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35919,7 +35925,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36006,7 +36013,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36093,7 +36101,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36180,7 +36189,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36295,7 +36305,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36381,7 +36392,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36479,7 +36491,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -41021,7 +41034,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -41488,7 +41502,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -46405,7 +46405,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46500,7 +46501,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46597,7 +46599,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46694,7 +46697,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46774,7 +46778,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46861,7 +46866,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -46958,7 +46964,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47045,7 +47052,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47132,7 +47140,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47219,7 +47228,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47334,7 +47344,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47420,7 +47431,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -47518,7 +47530,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -53752,7 +53765,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -56584,7 +56598,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -35366,7 +35366,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35461,7 +35462,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35558,7 +35560,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35655,7 +35658,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35735,7 +35739,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35822,7 +35827,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -35919,7 +35925,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36006,7 +36013,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36093,7 +36101,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36180,7 +36189,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36295,7 +36305,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36381,7 +36392,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -36479,7 +36491,8 @@
"deleting",
"stuck",
"failed"
]
],
"x-enum-name": "AttributeStatus"
},
"error": {
"type": "string",
@ -41021,7 +41034,8 @@
"enum": [
"pass",
"fail"
]
],
"x-enum-name": "HealthStatus"
}
},
"required": [
@ -41488,7 +41502,14 @@
"status": {
"type": "string",
"description": "Status of delivery.",
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed."
"x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
"enum": [
"draft",
"processing",
"scheduled",
"sent",
"failed"
]
}
},
"required": [

View file

@ -112,7 +112,7 @@ abstract class Format
return $this->params[$key] ?? $default;
}
protected function getEnumName(string $service, string $method, string $param): ?string
protected function getRequestEnumName(string $service, string $method, string $param): ?string
{
/* `$service` is `$namespace` */
switch ($service) {
@ -450,7 +450,7 @@ abstract class Format
return null;
}
public function getEnumKeys(string $service, string $method, string $param): array
public function getRequestEnumKeys(string $service, string $method, string $param): array
{
$values = [];
switch ($service) {
@ -543,6 +543,97 @@ abstract class Format
return $values;
}
public function getResponseEnumName(string $model, string $param): ?string
{
switch ($model) {
case 'attributeString':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeInteger':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeFloat':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeBoolean':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeEmail':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeEnum':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeIp':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeUrl':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeDatetime':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeRelationship':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributePoint':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributeLine':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'attributePolygon':
switch ($param) {
case 'status':
return 'AttributeStatus';
}
break;
case 'healthStatus':
switch ($param) {
case 'status':
return 'HealthStatus';
}
break;
}
return null;
}
protected function getNestedModels(Model $model, array &$usedModels): void
{
foreach ($model->getRules() as $rule) {

View file

@ -9,6 +9,7 @@ use Appwrite\SDK\Response;
use Appwrite\SDK\Specification\Format;
use Appwrite\Template\Template;
use Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response\Model\Any;
use Utopia\Database\Database;
use Utopia\Database\Helpers\Permission;
use Utopia\Database\Helpers\Role;
@ -559,8 +560,8 @@ class OpenAPI3 extends Format
if ($allowed) {
$node['schema']['enum'] = $validator->getList();
$node['schema']['x-enum-name'] = $this->getEnumName($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['x-enum-keys'] = $this->getEnumKeys($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name);
$node['schema']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name);
}
if ($validator->getType() === 'integer') {
$node['format'] = 'int32';
@ -777,8 +778,16 @@ class OpenAPI3 extends Format
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
if ($rule['array']) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['enum'] = $rule['enum'];
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
}
} else {
$output['components']['schemas'][$model->getType()]['properties'][$name]['enum'] = $rule['enum'];
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['components']['schemas'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;
}
}
}
if (!in_array($name, $required)) {
@ -786,6 +795,7 @@ class OpenAPI3 extends Format
}
}
/** @var Any $model */
if ($model->isAny() && !empty($model->getSampleData())) {
$examples = array_merge($examples, $model->getSampleData());
}

View file

@ -9,6 +9,7 @@ use Appwrite\SDK\Response;
use Appwrite\SDK\Specification\Format;
use Appwrite\Template\Template;
use Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response\Model\Any;
use Utopia\Database\Database;
use Utopia\Database\Helpers\Permission;
use Utopia\Database\Helpers\Role;
@ -565,8 +566,8 @@ class Swagger2 extends Format
if ($allowed && $validator->getType() === 'string') {
$node['enum'] = $validator->getList();
$node['x-enum-name'] = $this->getEnumName($namespace, $methodName, $name);
$node['x-enum-keys'] = $this->getEnumKeys($namespace, $methodName, $name);
$node['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name);
$node['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name);
}
if ($validator->getType() === 'integer') {
@ -799,8 +800,16 @@ class Swagger2 extends Format
if ($rule['type'] === 'enum' && !empty($rule['enum'])) {
if ($rule['array']) {
$output['definitions'][$model->getType()]['properties'][$name]['items']['enum'] = $rule['enum'];
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['definitions'][$model->getType()]['properties'][$name]['items']['x-enum-name'] = $enumName;
}
} else {
$output['definitions'][$model->getType()]['properties'][$name]['enum'] = $rule['enum'];
$enumName = $this->getResponseEnumName($model->getType(), $name);
if ($enumName) {
$output['definitions'][$model->getType()]['properties'][$name]['x-enum-name'] = $enumName;
}
}
}
if (!in_array($name, $required)) {
@ -808,6 +817,7 @@ class Swagger2 extends Format
}
}
/** @var Any $model */
if ($model->isAny() && !empty($model->getSampleData())) {
$examples = array_merge($examples, $model->getSampleData());
}

View file

@ -34,6 +34,7 @@ class Message extends Model
'description' => 'Message provider type.',
'default' => '',
'example' => MESSAGE_TYPE_EMAIL,
'enum' => [MESSAGE_TYPE_EMAIL, MESSAGE_TYPE_SMS, MESSAGE_TYPE_PUSH],
])
->addRule('topics', [
'type' => self::TYPE_STRING,
@ -50,7 +51,7 @@ class Message extends Model
'example' => ['5e5ea5c16897e'],
])
->addRule('targets', [
'type' => self::TYPE_STRING,
'type' => self::TYPE_ENUM,
'description' => 'Target IDs set as recipients.',
'default' => '',
'array' => true,
@ -94,10 +95,11 @@ class Message extends Model
],
])
->addRule('status', [
'type' => self::TYPE_STRING,
'type' => self::TYPE_ENUM,
'description' => 'Status of delivery.',
'default' => 'draft',
'example' => 'Message status can be one of the following: draft, processing, scheduled, sent, or failed.',
'enum' => ['draft', 'processing', 'scheduled', 'sent', 'failed'],
]);
}