Skip to content

Commit aef1fd4

Browse files
authored
Merge pull request #504 from appwrite/feat-nested-array-types
Support nested array types
2 parents 1ac51c7 + ea69431 commit aef1fd4

File tree

36 files changed

+162
-148
lines changed

36 files changed

+162
-148
lines changed

src/SDK/Language.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ abstract public function getIdentifierOverrides();
3838
abstract public function getFiles();
3939

4040
/**
41-
* @param $type
41+
* @param array $parameter
4242
* @return string
4343
*/
44-
abstract public function getTypeName($type);
44+
abstract public function getTypeName(array $parameter): string;
4545

4646
/**
4747
* @param array $param

src/SDK/Language/Dart.php

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,34 +116,32 @@ public function getIdentifierOverrides()
116116
}
117117

118118
/**
119-
* @param $type
119+
* @param array $parameter
120120
* @return string
121121
*/
122-
public function getTypeName($type)
122+
public function getTypeName(array $parameter): string
123123
{
124-
switch ($type) {
124+
switch ($parameter['type']) {
125125
case self::TYPE_INTEGER:
126126
return 'int';
127-
break;
128127
case self::TYPE_STRING:
129128
return 'String';
130-
break;
131129
case self::TYPE_FILE:
132130
return 'InputFile';
133-
break;
134131
case self::TYPE_BOOLEAN:
135132
return 'bool';
136-
break;
137133
case self::TYPE_ARRAY:
138-
return 'List';
139-
case self::TYPE_OBJECT:
140-
return 'Map';
134+
if (!empty($parameter['array']['type'])) {
135+
return 'List<' . $this->getTypeName($parameter['array']) . '>';
136+
}
137+
return 'List';
138+
case self::TYPE_OBJECT:
139+
return 'Map';
141140
case self::TYPE_NUMBER:
142141
return 'double';
143-
break;
144142
}
145143

146-
return $type;
144+
return $parameter['type'];
147145
}
148146

149147
/**

src/SDK/Language/Deno.php

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,34 +93,31 @@ public function getFiles()
9393
];
9494
}
9595

96-
/**
97-
* @param $type
96+
/**
97+
* @param array $parameter
9898
* @return string
9999
*/
100-
public function getTypeName($type)
100+
public function getTypeName(array $parameter): string
101101
{
102-
switch ($type) {
102+
switch ($parameter['type']) {
103103
case self::TYPE_INTEGER:
104104
return 'number';
105-
break;
106105
case self::TYPE_STRING:
107106
return 'string';
108-
break;
109107
case self::TYPE_FILE:
110108
return 'InputFile';
111-
break;
112109
case self::TYPE_BOOLEAN:
113110
return 'boolean';
114-
break;
115111
case self::TYPE_ARRAY:
112+
if (!empty($parameter['array']['type'])) {
113+
return $this->getTypeName($parameter['array']) . '[]';
114+
}
116115
return 'string[]';
117-
break;
118116
case self::TYPE_OBJECT:
119117
return 'object';
120-
break;
121118
}
122119

123-
return $type;
120+
return $parameter['type'];
124121
}
125122

126123
/**

src/SDK/Language/DotNet.php

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,30 +147,27 @@ public function getIdentifierOverrides()
147147
* @param $type
148148
* @return string
149149
*/
150-
public function getTypeName($type)
150+
public function getTypeName(array $parameter): string
151151
{
152-
switch ($type) {
152+
switch ($parameter['type']) {
153153
case self::TYPE_INTEGER:
154154
return 'int';
155-
break;
156155
case self::TYPE_STRING:
157156
return 'string';
158-
break;
159157
case self::TYPE_FILE:
160158
return 'FileInfo';
161-
break;
162159
case self::TYPE_BOOLEAN:
163160
return 'bool';
164-
break;
165161
case self::TYPE_ARRAY:
162+
if (!empty($parameter['array']['type'])) {
163+
return 'List<' . $this->getTypeName($parameter['array']) . '>';
164+
}
166165
return 'List<object>';
167-
break;
168166
case self::TYPE_OBJECT:
169167
return 'object';
170-
break;
171168
}
172169

173-
return $type;
170+
return $parameter['type'];
174171
}
175172

176173
/**

src/SDK/Language/Go.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,20 +110,20 @@ public function getFiles()
110110
}
111111

112112
/**
113-
* @param $type
113+
* @param array $parameter
114+
* @param array $nestedTypes
114115
* @return string
115116
*/
116-
public function getTypeName($type)
117+
public function getTypeName(array $parameter): string
117118
{
118-
switch ($type) {
119+
switch ($parameter['type']) {
119120
case self::TYPE_INTEGER:
120121
return 'int';
121122
case self::TYPE_NUMBER:
122123
return 'float64';
124+
case self::TYPE_FILE:
123125
case self::TYPE_STRING:
124126
return 'string';
125-
case self::TYPE_FILE:
126-
return 'string'; // '*os.File';
127127
case self::TYPE_BOOLEAN:
128128
return 'bool';
129129
case self::TYPE_OBJECT:
@@ -132,7 +132,7 @@ public function getTypeName($type)
132132
return '[]interface{}';
133133
}
134134

135-
return $type;
135+
return $parameter['type'];
136136
}
137137

138138
/**

src/SDK/Language/HTTP.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,27 @@ public function getIdentifierOverrides()
3636
* @param $type
3737
* @return string
3838
*/
39-
public function getTypeName($type)
39+
public function getTypeName(array $parameter): string
4040
{
41-
switch ($type) {
41+
switch ($parameter['type']) {
4242
case self::TYPE_INTEGER:
4343
return 'int';
44-
break;
4544
case self::TYPE_STRING:
4645
return 'String';
47-
break;
4846
case self::TYPE_FILE:
4947
return 'MultipartFile';
50-
break;
5148
case self::TYPE_BOOLEAN:
5249
return 'bool';
53-
break;
5450
case self::TYPE_ARRAY:
55-
return 'List';
56-
case self::TYPE_OBJECT:
57-
return 'dynamic';
58-
break;
51+
if (!empty($parameter['array']['type'])) {
52+
return 'List<' . $this->getTypeName($parameter['array']) . '>';
53+
}
54+
return 'List';
55+
case self::TYPE_OBJECT:
56+
return 'dynamic';
5957
}
6058

61-
return $type;
59+
return $parameter['type'];
6260
}
6361

6462
/**

src/SDK/Language/JS.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,24 +117,26 @@ public function getIdentifierOverrides()
117117
}
118118

119119
/**
120-
* @param $type
120+
* @param array $parameter
121+
* @param array $nestedTypes
121122
* @return string
122123
*/
123-
public function getTypeName($type)
124+
public function getTypeName(array $parameter): string
124125
{
125-
switch ($type) {
126+
switch ($parameter['type']) {
126127
case self::TYPE_INTEGER:
127128
case self::TYPE_NUMBER:
128129
return 'number';
129-
break;
130130
case self::TYPE_ARRAY:
131+
if (!empty($parameter['array']['type'])) {
132+
return $this->getTypeName($parameter['array']) . '[]';
133+
}
131134
return 'string[]';
132135
case self::TYPE_FILE:
133136
return 'File';
134-
break;
135137
}
136138

137-
return $type;
139+
return $parameter['type'];
138140
}
139141

140142
/**

src/SDK/Language/Kotlin.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ public function getIdentifierOverrides()
101101
* @param $type
102102
* @return string
103103
*/
104-
public function getTypeName($type)
104+
public function getTypeName(array $parameter): string
105105
{
106-
switch ($type) {
106+
switch ($parameter['type']) {
107107
case self::TYPE_INTEGER:
108108
return 'Long';
109109
case self::TYPE_NUMBER:
@@ -115,12 +115,15 @@ public function getTypeName($type)
115115
case self::TYPE_BOOLEAN:
116116
return 'Boolean';
117117
case self::TYPE_ARRAY:
118-
return 'List<Any>';
119-
case self::TYPE_OBJECT:
120-
return 'Any';
118+
if (!empty($parameter['array']['type'])) {
119+
return 'List<' . $this->getTypeName($parameter['array']) . '>';
120+
}
121+
return 'List<Any>';
122+
case self::TYPE_OBJECT:
123+
return 'Any';
121124
}
122125

123-
return $type;
126+
return $parameter['type'];
124127
}
125128

126129
/**

src/SDK/Language/Node.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,26 @@ public function getName()
1313
}
1414

1515
/**
16-
* @param $type
16+
* @param array $parameter
17+
* @param array $nestedTypes
1718
* @return string
1819
*/
19-
public function getTypeName($type)
20+
public function getTypeName(array $parameter): string
2021
{
21-
switch ($type) {
22+
switch ($parameter['type']) {
2223
case self::TYPE_INTEGER:
2324
case self::TYPE_NUMBER:
2425
return 'number';
25-
break;
2626
case self::TYPE_ARRAY:
27+
if (!empty($parameter['array']['type'])) {
28+
return $this->getTypeName($parameter['array']) . '[]';
29+
}
2730
return 'string[]';
2831
case self::TYPE_FILE:
2932
return 'InputFile';
30-
break;
3133
}
3234

33-
return $type;
35+
return $parameter['type'];
3436
}
3537

3638
/**

src/SDK/Language/PHP.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,19 +212,23 @@ public function getFiles()
212212
}
213213

214214
/**
215-
* @param $type
215+
* @param array $parameter
216+
* @param array $nestedTypes
216217
* @return string
217218
*/
218-
public function getTypeName($type)
219+
public function getTypeName(array $parameter): string
219220
{
220-
switch ($type) {
221+
switch ($parameter['type']) {
222+
case self::TYPE_STRING:
223+
return 'string';
221224
case self::TYPE_BOOLEAN:
222225
$type = 'bool';
223226
break;
224227
case self::TYPE_NUMBER:
225228
case self::TYPE_INTEGER:
226229
$type = 'int';
227230
break;
231+
case self::TYPE_ARRAY:
228232
case self::TYPE_OBJECT:
229233
$type = 'array';
230234
break;

0 commit comments

Comments
 (0)