Merge branch '1.6.x' into fix-slack-oauth

This commit is contained in:
Chirag Aggarwal 2025-01-18 00:12:38 +05:30 committed by GitHub
commit 4d86096c20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
146 changed files with 1042 additions and 518 deletions

View file

@ -245,7 +245,7 @@ return [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '14.1.0',
'version' => '14.2.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
@ -263,7 +263,7 @@ return [
[
'key' => 'deno',
'name' => 'Deno',
'version' => '12.1.0',
'version' => '12.2.0',
'url' => 'https://github.com/appwrite/sdk-for-deno',
'package' => 'https://deno.land/x/appwrite',
'enabled' => true,
@ -281,7 +281,7 @@ return [
[
'key' => 'php',
'name' => 'PHP',
'version' => '12.1.0',
'version' => '12.2.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
@ -299,7 +299,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '6.1.0',
'version' => '6.2.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
@ -317,7 +317,7 @@ return [
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '12.1.1',
'version' => '12.2.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
@ -335,7 +335,7 @@ return [
[
'key' => 'go',
'name' => 'Go',
'version' => '0.2.0',
'version' => '0.3.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
@ -353,7 +353,7 @@ return [
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.10.1',
'version' => '0.11.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@ -371,7 +371,7 @@ return [
[
'key' => 'dart',
'name' => 'Dart',
'version' => '12.1.0',
'version' => '12.2.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
@ -389,7 +389,7 @@ return [
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '6.1.0',
'version' => '6.2.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@ -411,7 +411,7 @@ return [
[
'key' => 'swift',
'name' => 'Swift',
'version' => '6.1.0',
'version' => '6.2.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,

View file

@ -14122,7 +14122,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"x-example": "{}"
},
"action": {
@ -14142,7 +14142,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"x-example": "<SOUND>"
},
"color": {
@ -14156,9 +14156,9 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"x-example": null
},
"draft": {
"type": "boolean",
@ -14169,12 +14169,31 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -14333,6 +14352,27 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -12980,7 +12980,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"x-example": "{}"
},
"action": {
@ -13000,7 +13000,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"x-example": "<SOUND>"
},
"color": {
@ -13014,9 +13014,9 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"x-example": null
},
"draft": {
"type": "boolean",
@ -13027,12 +13027,31 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -13192,6 +13211,27 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -14122,7 +14122,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"x-example": "{}"
},
"action": {
@ -14142,7 +14142,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"x-example": "<SOUND>"
},
"color": {
@ -14156,9 +14156,9 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"x-example": null
},
"draft": {
"type": "boolean",
@ -14169,12 +14169,31 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -14333,6 +14352,27 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -12980,7 +12980,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"x-example": "{}"
},
"action": {
@ -13000,7 +13000,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"x-example": "<SOUND>"
},
"color": {
@ -13014,9 +13014,9 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"x-example": null
},
"draft": {
"type": "boolean",
@ -13027,12 +13027,31 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -13192,6 +13211,27 @@
"type": "string",
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -14330,13 +14330,13 @@
"title": {
"type": "string",
"description": "Title for push notification.",
"default": null,
"default": "",
"x-example": "<TITLE>"
},
"body": {
"type": "string",
"description": "Body for push notification.",
"default": null,
"default": "",
"x-example": "<BODY>"
},
"topics": {
@ -14368,7 +14368,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"default": {},
"x-example": "{}"
},
@ -14392,7 +14392,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"default": "",
"x-example": "<SOUND>"
},
@ -14409,10 +14409,10 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"default": "",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"default": -1,
"x-example": null
},
"draft": {
"type": "boolean",
@ -14425,12 +14425,34 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"default": "high",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -14602,6 +14624,30 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"default": null,
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -13196,13 +13196,13 @@
"title": {
"type": "string",
"description": "Title for push notification.",
"default": null,
"default": "",
"x-example": "<TITLE>"
},
"body": {
"type": "string",
"description": "Body for push notification.",
"default": null,
"default": "",
"x-example": "<BODY>"
},
"topics": {
@ -13234,7 +13234,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"default": {},
"x-example": "{}"
},
@ -13258,7 +13258,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"default": "",
"x-example": "<SOUND>"
},
@ -13275,10 +13275,10 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"default": "",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"default": -1,
"x-example": null
},
"draft": {
"type": "boolean",
@ -13291,12 +13291,34 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"default": "high",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -13469,6 +13491,30 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"default": null,
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -14330,13 +14330,13 @@
"title": {
"type": "string",
"description": "Title for push notification.",
"default": null,
"default": "",
"x-example": "<TITLE>"
},
"body": {
"type": "string",
"description": "Body for push notification.",
"default": null,
"default": "",
"x-example": "<BODY>"
},
"topics": {
@ -14368,7 +14368,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"default": {},
"x-example": "{}"
},
@ -14392,7 +14392,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"default": "",
"x-example": "<SOUND>"
},
@ -14409,10 +14409,10 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"default": "",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"default": -1,
"x-example": null
},
"draft": {
"type": "boolean",
@ -14425,12 +14425,34 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"default": "high",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -14602,6 +14624,30 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"default": null,
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -13196,13 +13196,13 @@
"title": {
"type": "string",
"description": "Title for push notification.",
"default": null,
"default": "",
"x-example": "<TITLE>"
},
"body": {
"type": "string",
"description": "Body for push notification.",
"default": null,
"default": "",
"x-example": "<BODY>"
},
"topics": {
@ -13234,7 +13234,7 @@
},
"data": {
"type": "object",
"description": "Additional Data for push notification.",
"description": "Additional key-value pair data for push notification.",
"default": {},
"x-example": "{}"
},
@ -13258,7 +13258,7 @@
},
"sound": {
"type": "string",
"description": "Sound for push notification. Available only for Android and IOS Platform.",
"description": "Sound for push notification. Available only for Android and iOS Platform.",
"default": "",
"x-example": "<SOUND>"
},
@ -13275,10 +13275,10 @@
"x-example": "<TAG>"
},
"badge": {
"type": "string",
"description": "Badge for push notification. Available only for IOS Platform.",
"default": "",
"x-example": "<BADGE>"
"type": "integer",
"description": "Badge for push notification. Available only for iOS Platform.",
"default": -1,
"x-example": null
},
"draft": {
"type": "boolean",
@ -13291,12 +13291,34 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": false,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.",
"default": "high",
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
},
"required": [
"messageId",
"title",
"body"
"messageId"
]
}
}
@ -13469,6 +13491,30 @@
"description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.",
"default": null,
"x-example": null
},
"contentAvailable": {
"type": "boolean",
"description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"critical": {
"type": "boolean",
"description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.",
"default": null,
"x-example": false
},
"priority": {
"type": "string",
"description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.",
"default": null,
"x-example": "normal",
"enum": [
"normal",
"high"
],
"x-enum-name": "MessagePriority",
"x-enum-keys": []
}
}
}

View file

@ -268,6 +268,24 @@ return [
'question' => '',
'filter' => ''
],
[
'name' => '_APP_COMPRESSION_ENABLED',
'description' => 'This option allows you to enable or disable the response compression for the Appwrite API. It\'s enabled by default with value "enabled", and to disable it, pass value "disabled".',
'introduction' => '1.6.0',
'default' => 'enabled',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_COMPRESSION_MIN_SIZE_BYTES',
'description' => 'This option allows you to set the minimum size in bytes for the response compression to be applied. The default value is 1024 bytes.',
'introduction' => '1.6.0',
'default' => 1024,
'required' => false,
'question' => '',
'filter' => ''
]
],
],
[

View file

@ -400,6 +400,7 @@ App::post('/v1/functions')
$allEvents = Event::generateEvents('rules.[ruleId].create', [
'ruleId' => $rule->getId(),
]);
$target = Realtime::fromPayload(
// Pass first, most verbose event pattern
event: $allEvents[0],

View file

@ -2906,28 +2906,31 @@ App::post('/v1/messaging/messages/push')
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_MESSAGE)
->param('messageId', '', new CustomId(), 'Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.')
->param('title', '', new Text(256), 'Title for push notification.')
->param('body', '', new Text(64230), 'Body for push notification.')
->param('title', '', new Text(256), 'Title for push notification.', true)
->param('body', '', new Text(64230), 'Body for push notification.', true)
->param('topics', [], new ArrayList(new UID()), 'List of Topic IDs.', true)
->param('users', [], new ArrayList(new UID()), 'List of User IDs.', true)
->param('targets', [], new ArrayList(new UID()), 'List of Targets IDs.', true)
->param('data', null, new JSON(), 'Additional Data for push notification.', true)
->param('data', null, new JSON(), 'Additional key-value pair data for push notification.', true)
->param('action', '', new Text(256), 'Action for push notification.', true)
->param('image', '', new CompoundUID(), 'Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.', true)
->param('icon', '', new Text(256), 'Icon for push notification. Available only for Android and Web Platform.', true)
->param('sound', '', new Text(256), 'Sound for push notification. Available only for Android and IOS Platform.', true)
->param('sound', '', new Text(256), 'Sound for push notification. Available only for Android and iOS Platform.', true)
->param('color', '', new Text(256), 'Color for push notification. Available only for Android Platform.', true)
->param('tag', '', new Text(256), 'Tag for push notification. Available only for Android Platform.', true)
->param('badge', '', new Text(256), 'Badge for push notification. Available only for IOS Platform.', true)
->param('badge', -1, new Integer(), 'Badge for push notification. Available only for iOS Platform.', true)
->param('draft', false, new Boolean(), 'Is message a draft', true)
->param('scheduledAt', null, new DatetimeValidator(requireDateInFuture: true), 'Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.', true)
->param('contentAvailable', false, new Boolean(), 'If set to true, the notification will be delivered in the background. Available only for iOS Platform.', true)
->param('critical', false, new Boolean(), 'If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.', true)
->param('priority', 'high', new WhiteList(['normal', 'high']), 'Set the notification priority. "normal" will consider device state and may not deliver notifications immediately. "high" will always attempt to immediately deliver the notification.', true)
->inject('queueForEvents')
->inject('dbForProject')
->inject('dbForPlatform')
->inject('project')
->inject('queueForMessaging')
->inject('response')
->action(function (string $messageId, string $title, string $body, array $topics, array $users, array $targets, ?array $data, string $action, string $image, string $icon, string $sound, string $color, string $tag, string $badge, bool $draft, ?string $scheduledAt, Event $queueForEvents, Database $dbForProject, Database $dbForPlatform, Document $project, Messaging $queueForMessaging, Response $response) {
->action(function (string $messageId, string $title, string $body, array $topics, array $users, array $targets, ?array $data, string $action, string $image, string $icon, string $sound, string $color, string $tag, int $badge, bool $draft, ?string $scheduledAt, bool $contentAvailable, bool $critical, string $priority, Event $queueForEvents, Database $dbForProject, Database $dbForPlatform, Document $project, Messaging $queueForMessaging, Response $response) {
$messageId = $messageId == 'unique()'
? ID::unique()
: $messageId;
@ -3010,12 +3013,44 @@ App::post('/v1/messaging/messages/push')
$pushData = [];
$keys = ['title', 'body', 'data', 'action', 'image', 'icon', 'sound', 'color', 'tag', 'badge'];
foreach ($keys as $key) {
if (!empty($$key)) {
$pushData[$key] = $$key;
}
if (!empty($title)) {
$pushData['title'] = $title;
}
if (!empty($body)) {
$pushData['body'] = $body;
}
if (!empty($data)) {
$pushData['data'] = $data;
}
if (!empty($action)) {
$pushData['action'] = $action;
}
if (!empty($image)) {
$pushData['image'] = $image;
}
if (!empty($icon)) {
$pushData['icon'] = $icon;
}
if (!empty($sound)) {
$pushData['sound'] = $sound;
}
if (!empty($color)) {
$pushData['color'] = $color;
}
if (!empty($tag)) {
$pushData['tag'] = $tag;
}
if ($badge >= 0) {
$pushData['badge'] = $badge;
}
if ($contentAvailable) {
$pushData['contentAvailable'] = true;
}
if ($critical) {
$pushData['critical'] = true;
}
if (!empty($priority)) {
$pushData['priority'] = $priority;
}
$message = $dbForProject->createDocument('messages', new Document([
@ -3698,13 +3733,16 @@ App::patch('/v1/messaging/messages/push/:messageId')
->param('badge', null, new Integer(), 'Badge for push notification. Available only for iOS platforms.', true)
->param('draft', null, new Boolean(), 'Is message a draft', true)
->param('scheduledAt', null, new DatetimeValidator(requireDateInFuture: true), 'Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.', true)
->param('contentAvailable', null, new Boolean(), 'If set to true, the notification will be delivered in the background. Available only for iOS Platform.', true)
->param('critical', null, new Boolean(), 'If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.', true)
->param('priority', null, new WhiteList(['normal', 'high']), 'Set the notification priority. "normal" will consider device battery state and may send notifications later. "high" will always attempt to immediately deliver the notification.', true)
->inject('queueForEvents')
->inject('dbForProject')
->inject('dbForPlatform')
->inject('project')
->inject('queueForMessaging')
->inject('response')
->action(function (string $messageId, ?array $topics, ?array $users, ?array $targets, ?string $title, ?string $body, ?array $data, ?string $action, ?string $image, ?string $icon, ?string $sound, ?string $color, ?string $tag, ?int $badge, ?bool $draft, ?string $scheduledAt, Event $queueForEvents, Database $dbForProject, Database $dbForPlatform, Document $project, Messaging $queueForMessaging, Response $response) {
->action(function (string $messageId, ?array $topics, ?array $users, ?array $targets, ?string $title, ?string $body, ?array $data, ?string $action, ?string $image, ?string $icon, ?string $sound, ?string $color, ?string $tag, ?int $badge, ?bool $draft, ?string $scheduledAt, ?bool $contentAvailable, ?bool $critical, ?string $priority, Event $queueForEvents, Database $dbForProject, Database $dbForPlatform, Document $project, Messaging $queueForMessaging, Response $response) {
$message = $dbForProject->getDocument('messages', $messageId);
if ($message->isEmpty()) {
@ -3843,6 +3881,18 @@ App::patch('/v1/messaging/messages/push/:messageId')
$pushData['badge'] = $badge;
}
if (!\is_null($contentAvailable)) {
$pushData['contentAvailable'] = $contentAvailable;
}
if (!\is_null($critical)) {
$pushData['critical'] = $critical;
}
if (!\is_null($priority)) {
$pushData['priority'] = $priority;
}
if (!\is_null($image)) {
[$bucketId, $fileId] = CompoundUID::parse($image);

View file

@ -58,7 +58,7 @@ $parseLabel = function (string $label, array $responsePayload, array $requestPar
return $label;
};
$eventDatabaseListener = function (Document $document, Response $response, Event $queueForEvents, Func $queueForFunctions, Webhook $queueForWebhooks, Realtime $queueForRealtime) {
$eventDatabaseListener = function (Document $project, Document $document, Response $response, Event $queueForEvents, Func $queueForFunctions, Webhook $queueForWebhooks, Realtime $queueForRealtime) {
// Only trigger events for user creation with the database listener.
if ($document->getCollection() !== 'users') {
return;
@ -74,17 +74,20 @@ $eventDatabaseListener = function (Document $document, Response $response, Event
->from($queueForEvents)
->trigger();
$queueForWebhooks
->from($queueForEvents)
->trigger();
if ($queueForEvents->getProject()->getId() === 'console') {
return;
/** Trigger webhooks events only if a project has them enabled */
if (!empty($project->getAttribute('webhooks'))) {
$queueForWebhooks
->from($queueForEvents)
->trigger();
}
$queueForRealtime
->from($queueForEvents)
->trigger();
/** Trigger realtime events only for non console events */
if ($queueForEvents->getProject()->getId() !== 'console') {
$queueForRealtime
->from($queueForEvents)
->trigger();
}
};
$usageDatabaseListener = function (string $event, Document $document, Usage $queueForUsage) {
@ -527,6 +530,7 @@ App::init()
->on(Database::EVENT_DOCUMENT_CREATE, 'calculate-usage', fn ($event, $document) => $usageDatabaseListener($event, $document, $queueForUsage))
->on(Database::EVENT_DOCUMENT_DELETE, 'calculate-usage', fn ($event, $document) => $usageDatabaseListener($event, $document, $queueForUsage))
->on(Database::EVENT_DOCUMENT_CREATE, 'create-trigger-events', fn ($event, $document) => $eventDatabaseListener(
$project,
$document,
$response,
$queueForEventsClone->from($queueForEvents),
@ -679,10 +683,6 @@ App::shutdown()
$queueForEvents->setPayload($responsePayload);
}
$queueForWebhooks
->from($queueForEvents)
->trigger();
$queueForFunctions
->from($queueForEvents)
->trigger();
@ -692,6 +692,17 @@ App::shutdown()
->from($queueForEvents)
->trigger();
}
/** Trigger webhooks events only if a project has them enabled
* A future optimisation is to only trigger webhooks if the webhook is "enabled"
* But it might have performance implications on the API due to the number of webhooks etc.
* Some profiling is needed to see if this is a problem.
*/
if (!empty($project->getAttribute('webhooks'))) {
$queueForWebhooks
->from($queueForEvents)
->trigger();
}
}
$route = $utopia->getRoute();

View file

@ -334,7 +334,7 @@ $http->on(Constant::EVENT_REQUEST, function (SwooleRequest $swooleRequest, Swool
}
$app = new App('UTC');
$app->setCompression(true);
$app->setCompression(System::getEnv('_APP_COMPRESSION_ENABLED', 'enabled') === 'enabled');
$app->setCompressionMinSize(intval(System::getEnv('_APP_COMPRESSION_MIN_SIZE_BYTES', '1024'))); // 1KB
$pools = $register->get('pools');

View file

@ -202,6 +202,7 @@ const DELETE_TYPE_TOPIC = 'topic';
const DELETE_TYPE_TARGET = 'target';
const DELETE_TYPE_EXPIRED_TARGETS = 'invalid_targets';
const DELETE_TYPE_SESSION_TARGETS = 'session_targets';
const DELETE_TYPE_MAINTENANCE = 'maintenance';
// Message types
const MESSAGE_SEND_TYPE_INTERNAL = 'internal';
@ -733,12 +734,19 @@ Database::addFilter(
$data = \json_decode($message->getAttribute('data', []), true);
$providerType = $message->getAttribute('providerType', '');
if ($providerType === MESSAGE_TYPE_EMAIL) {
$searchValues = \array_merge($searchValues, [$data['subject'], MESSAGE_TYPE_EMAIL]);
} elseif ($providerType === MESSAGE_TYPE_SMS) {
$searchValues = \array_merge($searchValues, [$data['content'], MESSAGE_TYPE_SMS]);
} else {
$searchValues = \array_merge($searchValues, [$data['title'], MESSAGE_TYPE_PUSH]);
switch ($providerType) {
case MESSAGE_TYPE_EMAIL:
$searchValues[] = $data['subject'];
$searchValues[] = MESSAGE_TYPE_EMAIL;
break;
case MESSAGE_TYPE_SMS:
$searchValues[] = $data['content'];
$searchValues[] = MESSAGE_TYPE_SMS;
break;
case MESSAGE_TYPE_PUSH:
$searchValues[] = $data['title'] ?? '';
$searchValues[] = MESSAGE_TYPE_PUSH;
break;
}
$search = \implode(' ', \array_filter($searchValues));

View file

@ -59,10 +59,10 @@
"utopia-php/image": "0.7.*",
"utopia-php/locale": "0.4.*",
"utopia-php/logger": "0.6.*",
"utopia-php/messaging": "0.12.*",
"utopia-php/messaging": "0.13.*",
"utopia-php/migration": "0.6.*",
"utopia-php/orchestration": "0.9.*",
"utopia-php/platform": "0.7.*",
"utopia-php/platform": "0.7.1",
"utopia-php/pools": "0.5.*",
"utopia-php/preloader": "0.2.*",
"utopia-php/queue": "0.7.*",

64
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "c88950f1d3119d0764a469e1d804ce71",
"content-hash": "3853435a659889e86c16764046950bed",
"packages": [
{
"name": "adhocore/jwt",
@ -1430,16 +1430,16 @@
},
{
"name": "open-telemetry/gen-otlp-protobuf",
"version": "1.2.1",
"version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git",
"reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d"
"reference": "585bafddd4ae6565de154610b10a787a455c9ba0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/66c3b98e998a726691c92e6405a82e6e7b8b169d",
"reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d",
"url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/585bafddd4ae6565de154610b10a787a455c9ba0",
"reference": "585bafddd4ae6565de154610b10a787a455c9ba0",
"shasum": ""
},
"require": {
@ -1489,7 +1489,7 @@
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
"source": "https://github.com/open-telemetry/opentelemetry-php"
},
"time": "2024-10-30T11:49:49+00:00"
"time": "2025-01-15T23:07:07+00:00"
},
{
"name": "open-telemetry/sdk",
@ -3379,16 +3379,16 @@
},
{
"name": "utopia-php/compression",
"version": "0.1.2",
"version": "0.1.3",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/compression.git",
"reference": "6062f70596415f8d5de40a589367b0eb2a435f98"
"reference": "66f093557ba66d98245e562036182016c7dcfe8a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/compression/zipball/6062f70596415f8d5de40a589367b0eb2a435f98",
"reference": "6062f70596415f8d5de40a589367b0eb2a435f98",
"url": "https://api.github.com/repos/utopia-php/compression/zipball/66f093557ba66d98245e562036182016c7dcfe8a",
"reference": "66f093557ba66d98245e562036182016c7dcfe8a",
"shasum": ""
},
"require": {
@ -3419,9 +3419,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/compression/issues",
"source": "https://github.com/utopia-php/compression/tree/0.1.2"
"source": "https://github.com/utopia-php/compression/tree/0.1.3"
},
"time": "2024-11-08T14:59:54+00:00"
"time": "2025-01-15T15:15:51+00:00"
},
{
"name": "utopia-php/config",
@ -3678,16 +3678,16 @@
},
{
"name": "utopia-php/framework",
"version": "0.33.15",
"version": "0.33.16",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/http.git",
"reference": "83b0628900c2c53e8c3efbf069f3e13050295edc"
"reference": "e91d4c560d1b809e25faa63d564fef034363b50f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/http/zipball/83b0628900c2c53e8c3efbf069f3e13050295edc",
"reference": "83b0628900c2c53e8c3efbf069f3e13050295edc",
"url": "https://api.github.com/repos/utopia-php/http/zipball/e91d4c560d1b809e25faa63d564fef034363b50f",
"reference": "e91d4c560d1b809e25faa63d564fef034363b50f",
"shasum": ""
},
"require": {
@ -3719,9 +3719,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/http/issues",
"source": "https://github.com/utopia-php/http/tree/0.33.15"
"source": "https://github.com/utopia-php/http/tree/0.33.16"
},
"time": "2024-12-10T13:07:04+00:00"
"time": "2025-01-16T15:58:50+00:00"
},
{
"name": "utopia-php/image",
@ -3878,16 +3878,16 @@
},
{
"name": "utopia-php/messaging",
"version": "0.12.2",
"version": "0.13.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/messaging.git",
"reference": "f6790fba1fcee12163d51c65d2c226a7856295d9"
"reference": "0e3e57351fe4fe875ef3ab9a01a7fff5f022de90"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/messaging/zipball/f6790fba1fcee12163d51c65d2c226a7856295d9",
"reference": "f6790fba1fcee12163d51c65d2c226a7856295d9",
"url": "https://api.github.com/repos/utopia-php/messaging/zipball/0e3e57351fe4fe875ef3ab9a01a7fff5f022de90",
"reference": "0e3e57351fe4fe875ef3ab9a01a7fff5f022de90",
"shasum": ""
},
"require": {
@ -3898,9 +3898,9 @@
"phpmailer/phpmailer": "6.9.1"
},
"require-dev": {
"laravel/pint": "1.13.11",
"phpstan/phpstan": "1.10.58",
"phpunit/phpunit": "10.5.10"
"laravel/pint": "1.*",
"phpstan/phpstan": "1.*",
"phpunit/phpunit": "11.*"
},
"type": "library",
"autoload": {
@ -3923,9 +3923,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/messaging/issues",
"source": "https://github.com/utopia-php/messaging/tree/0.12.2"
"source": "https://github.com/utopia-php/messaging/tree/0.13.0"
},
"time": "2024-10-22T01:02:20+00:00"
"time": "2024-12-05T08:36:07+00:00"
},
{
"name": "utopia-php/migration",
@ -5126,16 +5126,16 @@
},
{
"name": "laravel/pint",
"version": "v1.19.0",
"version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "8169513746e1bac70c85d6ea1524d9225d4886f0"
"reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/8169513746e1bac70c85d6ea1524d9225d4886f0",
"reference": "8169513746e1bac70c85d6ea1524d9225d4886f0",
"url": "https://api.github.com/repos/laravel/pint/zipball/53072e8ea22213a7ed168a8a15b96fbb8b82d44b",
"reference": "53072e8ea22213a7ed168a8a15b96fbb8b82d44b",
"shasum": ""
},
"require": {
@ -5188,7 +5188,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2024-12-30T16:20:10+00:00"
"time": "2025-01-14T16:20:53+00:00"
},
{
"name": "matthiasmullie/minify",

View file

@ -13,6 +13,6 @@ AttributeString result = await databases.updateStringAttribute(
key: '',
xrequired: false,
xdefault: '<DEFAULT>',
size: 0, // (optional)
size: 1, // (optional)
newKey: '', // (optional)
);

View file

@ -9,8 +9,8 @@ Messaging messaging = Messaging(client);
Message result = await messaging.createPush(
messageId: '<MESSAGE_ID>',
title: '<TITLE>',
body: '<BODY>',
title: '<TITLE>', // (optional)
body: '<BODY>', // (optional)
topics: [], // (optional)
users: [], // (optional)
targets: [], // (optional)
@ -21,7 +21,10 @@ Message result = await messaging.createPush(
sound: '<SOUND>', // (optional)
color: '<COLOR>', // (optional)
tag: '<TAG>', // (optional)
badge: '<BADGE>', // (optional)
badge: 0, // (optional)
draft: false, // (optional)
scheduledAt: '', // (optional)
contentAvailable: false, // (optional)
critical: false, // (optional)
priority: MessagePriority.normal, // (optional)
);

View file

@ -24,4 +24,7 @@ Message result = await messaging.updatePush(
badge: 0, // (optional)
draft: false, // (optional)
scheduledAt: '', // (optional)
contentAvailable: false, // (optional)
critical: false, // (optional)
priority: MessagePriority.normal, // (optional)
);

View file

@ -13,6 +13,6 @@ const response = await databases.updateStringAttribute(
'', // key
false, // required
'<DEFAULT>', // default
null, // size (optional)
1, // size (optional)
'' // newKey (optional)
);

View file

@ -1,4 +1,4 @@
import { Client, Messaging } from "https://deno.land/x/appwrite/mod.ts";
import { Client, Messaging, MessagePriority } from "https://deno.land/x/appwrite/mod.ts";
const client = new Client()
.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
@ -9,8 +9,8 @@ const messaging = new Messaging(client);
const response = await messaging.createPush(
'<MESSAGE_ID>', // messageId
'<TITLE>', // title
'<BODY>', // body
'<TITLE>', // title (optional)
'<BODY>', // body (optional)
[], // topics (optional)
[], // users (optional)
[], // targets (optional)
@ -21,7 +21,10 @@ const response = await messaging.createPush(
'<SOUND>', // sound (optional)
'<COLOR>', // color (optional)
'<TAG>', // tag (optional)
'<BADGE>', // badge (optional)
null, // badge (optional)
false, // draft (optional)
'' // scheduledAt (optional)
'', // scheduledAt (optional)
false, // contentAvailable (optional)
false, // critical (optional)
MessagePriority.Normal // priority (optional)
);

View file

@ -1,4 +1,4 @@
import { Client, Messaging } from "https://deno.land/x/appwrite/mod.ts";
import { Client, Messaging, MessagePriority } from "https://deno.land/x/appwrite/mod.ts";
const client = new Client()
.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
@ -23,5 +23,8 @@ const response = await messaging.updatePush(
'<TAG>', // tag (optional)
null, // badge (optional)
false, // draft (optional)
'' // scheduledAt (optional)
'', // scheduledAt (optional)
false, // contentAvailable (optional)
false, // critical (optional)
MessagePriority.Normal // priority (optional)
);

View file

@ -15,6 +15,6 @@ AttributeString result = await databases.UpdateStringAttribute(
key: "",
required: false,
default: "<DEFAULT>",
size: 0, // optional
size: 1, // optional
newKey: "" // optional
);

View file

@ -1,4 +1,5 @@
using Appwrite;
using Appwrite.Enums;
using Appwrite.Models;
using Appwrite.Services;
@ -11,8 +12,8 @@ Messaging messaging = new Messaging(client);
Message result = await messaging.CreatePush(
messageId: "<MESSAGE_ID>",
title: "<TITLE>",
body: "<BODY>",
title: "<TITLE>", // optional
body: "<BODY>", // optional
topics: new List<string>(), // optional
users: new List<string>(), // optional
targets: new List<string>(), // optional
@ -23,7 +24,10 @@ Message result = await messaging.CreatePush(
sound: "<SOUND>", // optional
color: "<COLOR>", // optional
tag: "<TAG>", // optional
badge: "<BADGE>", // optional
badge: 0, // optional
draft: false, // optional
scheduledAt: "" // optional
scheduledAt: "", // optional
contentAvailable: false, // optional
critical: false, // optional
priority: MessagePriority.Normal // optional
);

View file

@ -1,4 +1,5 @@
using Appwrite;
using Appwrite.Enums;
using Appwrite.Models;
using Appwrite.Services;
@ -25,5 +26,8 @@ Message result = await messaging.UpdatePush(
tag: "<TAG>", // optional
badge: 0, // optional
draft: false, // optional
scheduledAt: "" // optional
scheduledAt: "", // optional
contentAvailable: false, // optional
critical: false, // optional
priority: MessagePriority.Normal // optional
);

View file

@ -20,7 +20,7 @@ func main() {
"",
false,
"<DEFAULT>",
databases.WithUpdateStringAttributeSize(0),
databases.WithUpdateStringAttributeSize(1),
databases.WithUpdateStringAttributeNewKey(""),
)

View file

@ -16,8 +16,8 @@ func main() {
service := messaging.NewMessaging(client)
response, error := service.CreatePush(
"<MESSAGE_ID>",
"<TITLE>",
"<BODY>",
messaging.WithCreatePushTitle("<TITLE>"),
messaging.WithCreatePushBody("<BODY>"),
messaging.WithCreatePushTopics([]interface{}{}),
messaging.WithCreatePushUsers([]interface{}{}),
messaging.WithCreatePushTargets([]interface{}{}),
@ -28,9 +28,12 @@ func main() {
messaging.WithCreatePushSound("<SOUND>"),
messaging.WithCreatePushColor("<COLOR>"),
messaging.WithCreatePushTag("<TAG>"),
messaging.WithCreatePushBadge("<BADGE>"),
messaging.WithCreatePushBadge(0),
messaging.WithCreatePushDraft(false),
messaging.WithCreatePushScheduledAt(""),
messaging.WithCreatePushContentAvailable(false),
messaging.WithCreatePushCritical(false),
messaging.WithCreatePushPriority("normal"),
)
if error != nil {

View file

@ -31,6 +31,9 @@ func main() {
messaging.WithUpdatePushBadge(0),
messaging.WithUpdatePushDraft(false),
messaging.WithUpdatePushScheduledAt(""),
messaging.WithUpdatePushContentAvailable(false),
messaging.WithUpdatePushCritical(false),
messaging.WithUpdatePushPriority("normal"),
)
if error != nil {

View file

@ -33,6 +33,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -28,6 +28,7 @@ query {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -30,6 +30,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -30,6 +30,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -30,6 +30,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -28,6 +28,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
default
}
}

View file

@ -23,6 +23,8 @@ mutation {
error
attributes
orders
_createdAt
_updatedAt
}
}
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -14,6 +14,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
elements
format
default

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
min
max
default

View file

@ -13,5 +13,7 @@ mutation {
error
attributes
orders
_createdAt
_updatedAt
}
}

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
min
max
default

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
relatedCollection
relationType
twoWay

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
size
default
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -19,6 +19,8 @@ query {
error
attributes
orders
_createdAt
_updatedAt
}
}
}

View file

@ -10,5 +10,7 @@ query {
error
attributes
orders
_createdAt
_updatedAt
}
}

View file

@ -22,6 +22,8 @@ query {
error
attributes
orders
_createdAt
_updatedAt
}
}
}

View file

@ -12,6 +12,8 @@ query {
error
attributes
orders
_createdAt
_updatedAt
}
}
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
default
}
}

View file

@ -23,6 +23,8 @@ mutation {
error
attributes
orders
_createdAt
_updatedAt
}
}
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -14,6 +14,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
elements
format
default

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
min
max
default

View file

@ -15,6 +15,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
min
max
default

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -12,6 +12,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
relatedCollection
relationType
twoWay

View file

@ -5,7 +5,7 @@ mutation {
key: "",
required: false,
default: "<DEFAULT>",
size: 0,
size: 1,
newKey: ""
) {
key
@ -14,6 +14,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
size
default
}

View file

@ -13,6 +13,8 @@ mutation {
error
required
array
_createdAt
_updatedAt
format
default
}

View file

@ -13,9 +13,12 @@ mutation {
sound: "<SOUND>",
color: "<COLOR>",
tag: "<TAG>",
badge: "<BADGE>",
badge: 0,
draft: false,
scheduledAt: ""
scheduledAt: "",
contentAvailable: false,
critical: false,
priority: "normal"
) {
_id
_createdAt

View file

@ -17,6 +17,7 @@ mutation {
providerId
providerType
identifier
expired
}
userId
userName

View file

@ -16,6 +16,7 @@ query {
providerId
providerType
identifier
expired
}
userId
userName

View file

@ -19,6 +19,7 @@ query {
providerId
providerType
identifier
expired
}
userId
userName

View file

@ -13,6 +13,7 @@ query {
providerId
providerType
identifier
expired
}
}
}

View file

@ -15,7 +15,10 @@ mutation {
tag: "<TAG>",
badge: 0,
draft: false,
scheduledAt: ""
scheduledAt: "",
contentAvailable: false,
critical: false,
priority: "normal"
) {
_id
_createdAt

View file

@ -33,6 +33,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -33,6 +33,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -33,6 +33,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -33,6 +33,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -34,6 +34,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -36,6 +36,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -38,6 +38,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -15,5 +15,6 @@ mutation {
providerId
providerType
identifier
expired
}
}

View file

@ -34,6 +34,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -11,5 +11,6 @@ query {
providerId
providerType
identifier
expired
}
}

View file

@ -30,6 +30,7 @@ query {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -13,6 +13,7 @@ query {
providerId
providerType
identifier
expired
}
}
}

View file

@ -33,6 +33,7 @@ query {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -31,6 +31,7 @@ mutation {
providerId
providerType
identifier
expired
}
accessedAt
}

View file

@ -14,5 +14,6 @@ mutation {
providerId
providerType
identifier
expired
}
}

View file

@ -15,7 +15,7 @@ databases.updateStringAttribute(
"", // key
false, // required
"<DEFAULT>", // default
0, // size (optional)
1, // size (optional)
"", // newKey (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {

View file

@ -11,8 +11,8 @@ Messaging messaging = new Messaging(client);
messaging.createPush(
"<MESSAGE_ID>", // messageId
"<TITLE>", // title
"<BODY>", // body
"<TITLE>", // title (optional)
"<BODY>", // body (optional)
listOf(), // topics (optional)
listOf(), // users (optional)
listOf(), // targets (optional)
@ -23,9 +23,12 @@ messaging.createPush(
"<SOUND>", // sound (optional)
"<COLOR>", // color (optional)
"<TAG>", // tag (optional)
"<BADGE>", // badge (optional)
0, // badge (optional)
false, // draft (optional)
"", // scheduledAt (optional)
false, // contentAvailable (optional)
false, // critical (optional)
MessagePriority.NORMAL, // priority (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

View file

@ -26,6 +26,9 @@ messaging.updatePush(
0, // badge (optional)
false, // draft (optional)
"", // scheduledAt (optional)
false, // contentAvailable (optional)
false, // critical (optional)
MessagePriority.NORMAL, // priority (optional)
new CoroutineCallback<>((result, error) -> {
if (error != null) {
error.printStackTrace();

View file

@ -15,6 +15,6 @@ val response = databases.updateStringAttribute(
key = "",
required = false,
default = "<DEFAULT>",
size = 0, // optional
size = 1, // optional
newKey = "" // optional
)

Some files were not shown because too many files have changed in this diff Show more