Skip to content

Commit 05367bc

Browse files
authored
Merge pull request #1258 from appwrite/feat-add-geometric-types-support
Add type generation support for geometric types (point, linestring, polygon)
2 parents dc6720b + ae5294d commit 05367bc

File tree

13 files changed

+77
-5
lines changed

13 files changed

+77
-5
lines changed

example.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,9 @@ function configureSDK($sdk, $overrides = []) {
9494
// $platform = 'server';
9595
}
9696

97+
$branch = '1.8.x';
9798
$version = '1.8.x';
98-
$spec = getSSLPage("https://raw.githubusercontent.com/appwrite/appwrite/{$version}/app/config/specs/swagger2-{$version}-{$platform}.json");
99+
$spec = getSSLPage("https://raw.githubusercontent.com/appwrite/appwrite/{$branch}/app/config/specs/swagger2-{$version}-{$platform}.json");
99100

100101
if(empty($spec)) {
101102
throw new Exception('Failed to fetch spec from Appwrite server');

templates/cli/lib/type-generation/attribute.js.twig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ const AttributeType = {
99
URL: "url",
1010
ENUM: "enum",
1111
RELATIONSHIP: "relationship",
12+
POINT: "point",
13+
LINESTRING: "linestring",
14+
POLYGON: "polygon",
1215
};
1316

1417
module.exports = {

templates/cli/lib/type-generation/languages/csharp.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ class CSharp extends LanguageMeta {
3333
type = `List<${type}>`;
3434
}
3535
break;
36+
case AttributeType.POINT:
37+
type = "List<double>";
38+
break;
39+
case AttributeType.LINESTRING:
40+
type = "List<List<double>>";
41+
break;
42+
case AttributeType.POLYGON:
43+
type = "List<List<List<double>>>";
44+
break;
3645
default:
3746
throw new Error(`Unknown attribute type: ${attribute.type}`);
3847
}

templates/cli/lib/type-generation/languages/dart.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ class Dart extends LanguageMeta {
7070
type = `List<${type}>`;
7171
}
7272
break;
73+
case AttributeType.POINT:
74+
type = "List<double>";
75+
break;
76+
case AttributeType.LINESTRING:
77+
type = "List<List<double>>";
78+
break;
79+
case AttributeType.POLYGON:
80+
type = "List<List<List<double>>>";
81+
break;
7382
default:
7483
throw new Error(`Unknown attribute type: ${attribute.type}`);
7584
}

templates/cli/lib/type-generation/languages/java.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ class Java extends LanguageMeta {
3333
type = "List<" + type + ">";
3434
}
3535
break;
36+
case AttributeType.POINT:
37+
type = "List<Double>";
38+
break;
39+
case AttributeType.LINESTRING:
40+
type = "List<List<Double>>";
41+
break;
42+
case AttributeType.POLYGON:
43+
type = "List<List<List<Double>>>";
44+
break;
3645
default:
3746
throw new Error(`Unknown attribute type: ${attribute.type}`);
3847
}

templates/cli/lib/type-generation/languages/javascript.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ class JavaScript extends LanguageMeta {
3838
type = `${type}[]`;
3939
}
4040
break;
41+
case AttributeType.POINT:
42+
type = "number[]";
43+
break;
44+
case AttributeType.LINESTRING:
45+
type = "number[][]";
46+
break;
47+
case AttributeType.POLYGON:
48+
type = "number[][][]";
49+
break;
4150
default:
4251
throw new Error(`Unknown attribute type: ${attribute.type}`);
4352
}

templates/cli/lib/type-generation/languages/kotlin.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ class Kotlin extends LanguageMeta {
3333
type = `List<${type}>`;
3434
}
3535
break;
36+
case AttributeType.POINT:
37+
type = "List<Double>";
38+
break;
39+
case AttributeType.LINESTRING:
40+
type = "List<List<Double>>";
41+
break;
42+
case AttributeType.POLYGON:
43+
type = "List<List<List<Double>>>";
44+
break;
3645
default:
3746
throw new Error(`Unknown attribute type: ${attribute.type}`);
3847
}

templates/cli/lib/type-generation/languages/php.js.twig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ class PHP extends LanguageMeta {
3636
type = "array";
3737
}
3838
break;
39+
case AttributeType.POINT:
40+
case AttributeType.LINESTRING:
41+
case AttributeType.POLYGON:
42+
type = "array";
43+
break;
3944
default:
4045
throw new Error(`Unknown attribute type: ${attribute.type}`);
4146
}

templates/cli/lib/type-generation/languages/swift.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ class Swift extends LanguageMeta {
3333
type = `[${type}]`;
3434
}
3535
break;
36+
case AttributeType.POINT:
37+
type = "[Double]";
38+
break;
39+
case AttributeType.LINESTRING:
40+
type = "[[Double]]";
41+
break;
42+
case AttributeType.POLYGON:
43+
type = "[[[Double]]]";
44+
break;
3645
default:
3746
throw new Error(`Unknown attribute type: ${attribute.type}`);
3847
}

templates/cli/lib/type-generation/languages/typescript.js.twig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ class TypeScript extends LanguageMeta {
3838
type = `${type}[]`;
3939
}
4040
break;
41+
case AttributeType.POINT:
42+
type = "Array<number>";
43+
break;
44+
case AttributeType.LINESTRING:
45+
type = "Array<Array<number>>";
46+
break;
47+
case AttributeType.POLYGON:
48+
type = "Array<Array<Array<number>>>";
49+
break;
4150
default:
4251
throw new Error(`Unknown attribute type: ${attribute.type}`);
4352
}

0 commit comments

Comments
 (0)