Skip to content

🐛 Bug Report: User object empty prefs field is an array instead of an object #6360

@Andree98

Description

@Andree98

👟 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?

Metadata

Metadata

Assignees

Labels

api / realtimeFixes and upgrades for the Appwrite Realtime API.bugSomething isn't workingproduct / functionsFixes and upgrades for the Appwrite Functions.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions