diff --git a/assets/openapi.json b/assets/openapi.json
index b1818f4b..35b75a77 100644
--- a/assets/openapi.json
+++ b/assets/openapi.json
@@ -136,6 +136,9 @@
"icon": {
"type": "string"
},
+ "cover_image": {
+ "type": "string"
+ },
"interactions_endpoint_url": {
"type": "string"
},
@@ -169,6 +172,12 @@
},
"flags": {
"type": "integer"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
+ "guild_id": {
+ "type": "string"
}
}
},
@@ -3099,6 +3108,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/components/schemas/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/components/schemas/Team"
},
diff --git a/assets/schemas.json b/assets/schemas.json
index c92ac3e9..6681e695 100644
--- a/assets/schemas.json
+++ b/assets/schemas.json
@@ -113,6 +113,9 @@
"icon": {
"type": "string"
},
+ "cover_image": {
+ "type": "string"
+ },
"interactions_endpoint_url": {
"type": "string"
},
@@ -148,6 +151,12 @@
},
"flags": {
"type": "integer"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
+ "guild_id": {
+ "type": "string"
}
},
"additionalProperties": false,
@@ -3259,6 +3268,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -8111,6 +8129,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -12963,6 +12990,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -17810,6 +17846,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -22693,6 +22738,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -27545,6 +27599,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -32388,6 +32451,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -37234,6 +37306,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -42089,6 +42170,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -46932,6 +47022,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -51775,6 +51874,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -56634,6 +56742,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -61480,6 +61597,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -66384,6 +66510,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -71249,6 +71384,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -76255,6 +76399,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -81119,6 +81272,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -85993,6 +86155,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -90851,6 +91022,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -95713,6 +95893,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -100565,6 +100754,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -105405,6 +105603,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -110382,6 +110589,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -115213,6 +115429,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -120187,6 +120412,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -125032,6 +125266,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -129883,6 +130126,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -134729,6 +134981,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -139573,6 +139834,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -144451,6 +144721,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -149295,6 +149574,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -154138,6 +154426,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -159017,6 +159314,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -163875,6 +164181,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -168722,6 +169037,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -173643,6 +173967,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -178483,6 +178816,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -183326,6 +183668,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -188169,6 +188520,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -193011,6 +193371,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -197861,6 +198230,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -202717,6 +203095,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -207557,6 +207944,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -212446,6 +212842,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -217326,6 +217731,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -222166,6 +222580,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -227031,6 +227454,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -231991,6 +232423,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -236830,6 +237271,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -241708,6 +242158,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -246574,6 +247033,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -251492,6 +251960,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -256332,6 +256809,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -261180,6 +261666,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -266018,6 +266513,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -270862,6 +271366,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -275706,6 +276219,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -280636,6 +281158,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -285480,6 +286011,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -290356,6 +290896,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -295204,6 +295753,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -300042,6 +300600,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -304886,6 +305453,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -309741,6 +310317,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -314610,6 +315195,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -319450,6 +320044,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -324293,6 +324896,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -329165,6 +329777,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -334132,6 +334753,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -339051,6 +339681,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -343898,6 +344537,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -348738,6 +349386,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -353578,6 +354235,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -358425,6 +359091,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -363269,6 +363944,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -368109,6 +368793,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -373024,6 +373717,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -377875,6 +378577,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -382727,6 +383438,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -387629,6 +388349,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -392490,6 +393219,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -397357,6 +398095,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -402218,6 +402965,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -407058,6 +407814,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -411895,6 +412660,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -416763,6 +417537,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -421643,6 +422426,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -426477,6 +427269,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -431321,6 +432122,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -436161,6 +436971,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -441008,6 +441827,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -446059,6 +446887,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -450890,6 +451727,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -455821,6 +456667,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -460655,6 +461510,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -465489,6 +466353,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -470323,6 +471196,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -475257,6 +476139,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -480089,6 +480980,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -484921,6 +485821,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -489753,6 +490662,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -494587,6 +495505,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -499421,6 +500348,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -504255,6 +505191,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -509089,6 +510034,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -513923,6 +514877,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -518821,6 +519784,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -523655,6 +524627,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -528489,6 +529470,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -533323,6 +534313,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -538204,6 +539203,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -543175,6 +544183,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -548009,6 +549026,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -552843,6 +553869,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -557677,6 +558712,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -562511,6 +563555,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -567371,6 +568424,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -572205,6 +573267,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -577037,6 +578108,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -581892,6 +582972,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -586740,6 +587829,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -591707,6 +592805,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -596565,6 +597672,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -601417,6 +602533,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -606261,6 +607386,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -611105,6 +612239,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -615936,6 +617079,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -620782,6 +621934,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -625625,6 +626786,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -630483,6 +631653,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -635345,6 +636524,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -640186,6 +641374,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -645026,6 +646223,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -649866,6 +651072,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
@@ -654712,6 +655927,15 @@
"privacy_policy_url": {
"type": "string"
},
+ "guild_id": {
+ "type": "string"
+ },
+ "guild": {
+ "$ref": "#/definitions/Guild"
+ },
+ "custom_install_url": {
+ "type": "string"
+ },
"team": {
"$ref": "#/definitions/Team"
},
diff --git a/src/api/routes/applications/#id/index.ts b/src/api/routes/applications/#id/index.ts
index 949d66f8..2b4bcd88 100644
--- a/src/api/routes/applications/#id/index.ts
+++ b/src/api/routes/applications/#id/index.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
@@ -21,6 +21,7 @@ import {
Application,
ApplicationModifySchema,
DiscordApiErrors,
+ Guild,
handleFile,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
@@ -90,6 +91,24 @@ router.patch(
body.icon as string,
);
}
+ if (body.cover_image) {
+ body.cover_image = await handleFile(
+ `/app-icons/${app.id}`,
+ body.cover_image as string,
+ );
+ }
+
+ if (body.guild_id) {
+ const guild = await Guild.findOneOrFail({
+ where: { id: body.guild_id },
+ select: ["owner_id"],
+ });
+ if (guild.owner_id != req.user_id)
+ throw new HTTPError(
+ "You must be the owner of the guild to link it to an application",
+ 400,
+ );
+ }
if (app.bot) {
app.bot.assign({ bio: body.description });
diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts
index 4ed75f27..747ef860 100644
--- a/src/util/entities/Application.ts
+++ b/src/util/entities/Application.ts
@@ -16,11 +16,19 @@
along with this program. If not, see .
*/
-import { Column, Entity, JoinColumn, ManyToOne, OneToOne } from "typeorm";
+import {
+ Column,
+ Entity,
+ JoinColumn,
+ ManyToOne,
+ OneToOne,
+ RelationId,
+} from "typeorm";
import { BaseClass } from "./BaseClass";
import { Team } from "./Team";
import { User } from "./User";
import { dbEngine } from "../util/Database";
+import { Guild } from "./Guild";
@Entity({
name: "applications",
@@ -108,15 +116,22 @@ export class Application extends BaseClass {
@Column({ nullable: true })
privacy_policy_url?: string;
+ @Column({ nullable: true })
+ @RelationId((application: Application) => application.guild)
+ guild_id?: string;
+
+ @JoinColumn({ name: "guild_id" })
+ @ManyToOne(() => Guild)
+ guild?: Guild; // guild to which the app is linked, e.g. a developer support server
+
+ @Column({ nullable: true })
+ custom_install_url?: string;
+
//just for us
//@Column({ type: "simple-array", nullable: true })
//rpc_origins?: string[];
- //@JoinColumn({ name: "guild_id" })
- //@ManyToOne(() => Guild)
- //guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked
-
//@Column({ nullable: true })
//primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created,
diff --git a/src/util/migration/mariadb/1725090962922-applicationProperties.ts b/src/util/migration/mariadb/1725090962922-applicationProperties.ts
new file mode 100644
index 00000000..ee8c0bea
--- /dev/null
+++ b/src/util/migration/mariadb/1725090962922-applicationProperties.ts
@@ -0,0 +1,23 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class ApplicationProperties1725090962922 implements MigrationInterface {
+ name = "ApplicationProperties1725090962922";
+
+ public async up(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE `applications` ADD COLUMN `guild_id` VARCHAR(255) NOT NULL",
+ );
+ await queryRunner.query(
+ "ALTER TABLE `applications` ADD COLUMN `custom_install_url` TEXT NOT NULL",
+ );
+ }
+
+ public async down(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE `applications` DROP COLUMN `guild_id`",
+ );
+ await queryRunner.query(
+ "ALTER TABLE `applications` DROP COLUMN `custom_install_url`",
+ );
+ }
+}
diff --git a/src/util/migration/mysql/1725090962922-applicationProperties.ts b/src/util/migration/mysql/1725090962922-applicationProperties.ts
new file mode 100644
index 00000000..ee8c0bea
--- /dev/null
+++ b/src/util/migration/mysql/1725090962922-applicationProperties.ts
@@ -0,0 +1,23 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class ApplicationProperties1725090962922 implements MigrationInterface {
+ name = "ApplicationProperties1725090962922";
+
+ public async up(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE `applications` ADD COLUMN `guild_id` VARCHAR(255) NOT NULL",
+ );
+ await queryRunner.query(
+ "ALTER TABLE `applications` ADD COLUMN `custom_install_url` TEXT NOT NULL",
+ );
+ }
+
+ public async down(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE `applications` DROP COLUMN `guild_id`",
+ );
+ await queryRunner.query(
+ "ALTER TABLE `applications` DROP COLUMN `custom_install_url`",
+ );
+ }
+}
diff --git a/src/util/migration/postgres/1725090962922-applicationProperties.ts b/src/util/migration/postgres/1725090962922-applicationProperties.ts
new file mode 100644
index 00000000..d43a0277
--- /dev/null
+++ b/src/util/migration/postgres/1725090962922-applicationProperties.ts
@@ -0,0 +1,23 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class ApplicationProperties1725090962922 implements MigrationInterface {
+ name = "ApplicationProperties1725090962922";
+
+ public async up(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE applications ADD COLUMN guild_id TEXT NOT NULL",
+ );
+ await queryRunner.query(
+ "ALTER TABLE applications ADD COLUMN custom_install_url TEXT NOT NULL",
+ );
+ }
+
+ public async down(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ "ALTER TABLE applications DROP COLUMN guild_id",
+ );
+ await queryRunner.query(
+ "ALTER TABLE applications DROP COLUMN custom_install_url",
+ );
+ }
+}
diff --git a/src/util/schemas/ApplicationModifySchema.ts b/src/util/schemas/ApplicationModifySchema.ts
index f75dd5b1..a8717976 100644
--- a/src/util/schemas/ApplicationModifySchema.ts
+++ b/src/util/schemas/ApplicationModifySchema.ts
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
@@ -19,6 +19,7 @@
export interface ApplicationModifySchema {
description?: string;
icon?: string;
+ cover_image?: string;
interactions_endpoint_url?: string;
max_participants?: number | null;
name?: string;
@@ -29,4 +30,10 @@ export interface ApplicationModifySchema {
bot_public?: boolean;
bot_require_code_grant?: boolean;
flags?: number;
+ custom_install_url?: string;
+ guild_id?: string;
+ /*install_params?: { TODO: Validation
+ scopes: string[];
+ permissions: string;
+ };*/
}