-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Open
Labels
api / realtimeFixes and upgrades for the Appwrite Realtime API.Fixes and upgrades for the Appwrite Realtime API.bugSomething isn't workingSomething isn't workingproduct / functionsFixes and upgrades for the Appwrite Functions.Fixes and upgrades for the Appwrite Functions.
Description
👟 Reproduction steps
When a users.*.delete event triggers a cloud function for a user that has empty preferences, the User object prefs is an array instead of an object.
Reproducible code
Future<dynamic> main(final context) async {
final client = Client()
.setEndpoint(Platform.environment['APPWRITE_ENDPOINT']!)
.setProject(Platform.environment['APPWRITE_FUNCTION_PROJECT_ID'])
.setKey(Platform.environment['API_KEY']);
try {
final user = User.fromMap(context.req.body);
await Databases(client).deleteDocument(
databaseId: Platform.environment['DATABASE_ID']!,
collectionId: Platform.environment['USERS_COLLECTION_ID']!,
documentId: user.$id,
);
return context.res.empty();
} on Exception catch (e, stack) {
context.error('$e \n $stack');
return context.res.send('Server error', 500);
}
}
👍 Expected behavior
The User object from context.req.body should have prefs:{}
👎 Actual Behavior
The User object from context.req.body has prefs:[]
🎲 Appwrite version
Appwrite Cloud
💻 Operating system
MacOS
🧱 Your Environment
Appwrite 1.4 cloud functions
runtime: dart 2.17.0
dart_appwrite: 8.0.0
👀 Have you spent some time to check if this issue has been raised before?
- I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- I have read the Code of Conduct
JoshiJoshiJoshi
Metadata
Metadata
Assignees
Labels
api / realtimeFixes and upgrades for the Appwrite Realtime API.Fixes and upgrades for the Appwrite Realtime API.bugSomething isn't workingSomething isn't workingproduct / functionsFixes and upgrades for the Appwrite Functions.Fixes and upgrades for the Appwrite Functions.