Fix JSON Encode for multiplex objects

This commit is contained in:
Bradley Schofield 2024-12-17 10:31:26 +09:00
parent 2997a11274
commit 8ae462c317
9 changed files with 166 additions and 7 deletions

View file

@ -4564,7 +4564,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": "[{},{}]",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": []
}

View file

@ -8133,7 +8133,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": "[{},{}]",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": []
}

View file

@ -7667,7 +7667,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": "[{},{}]",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": [],
"Session": []

View file

@ -4752,6 +4752,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": []
}

View file

@ -8336,6 +8336,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": []
}

View file

@ -7848,6 +7848,31 @@
"offline-model": "\/databases\/{databaseId}\/collections\/{collectionId}\/documents",
"offline-key": "{documentId}",
"offline-response-key": "$id",
"multiplex": [
{
"name": "createDocument",
"parameters": [
"documentId",
"data",
"permissions"
],
"required": [
"documentId",
"data"
],
"responseModel": "document"
},
{
"name": "createDocuments",
"parameters": [
"documents"
],
"required": [
"documents"
],
"responseModel": "documentList"
}
],
"auth": {
"Project": [],
"Session": []

View file

@ -2,7 +2,9 @@
namespace Appwrite\SDK;
class Multiplex
use JsonSerializable;
class Multiplex implements JsonSerializable
{
/**
* @param string $name
@ -17,4 +19,14 @@ class Multiplex
private string $responseModel
)
{}
public function jsonSerialize(): array
{
return [
'name' => $this->name,
'parameters' => $this->parameters,
'required' => $this->required,
'responseModel' => $this->responseModel,
];
}
}

View file

@ -198,7 +198,7 @@ class OpenAPI3 extends Format
];
if (!empty($sdk->getMultiplex())) {
$temp['x-appwrite']['multiplex'] = \json_encode($sdk->getMultiplex());
$temp['x-appwrite']['multiplex'] = $sdk->getMultiplex();
}
foreach ($this->models as $value) {

View file

@ -198,8 +198,8 @@ class Swagger2 extends Format
$temp['produces'][] = $produces;
}
if (is_array($sdk->getMethodName() ?? '')) {
$temp['x-appwrite']['multiplex'] = $sdk->getMethodName();
if (!empty($sdk->getMultiplex())) {
$temp['x-appwrite']['multiplex'] = $sdk->getMultiplex();
}
foreach ($this->models as $value) {