Mosh OntongOriginal post
Rank 5: Hypervisor
Future<ConsultationThread> createThread({
required String memberId,
required String consultationId,
required String message,
}) async {
try {
_logger.info('Create Thread for $memberId in $consultationId');
final user = await account.get();
final response = await databases.createDocument(
databaseId: consultationThreadCredential.databaseId,
collectionId: consultationThreadCredential.collectionId,
documentId: app.ID.unique(),
data: {
'id': app.ID.unique(),
'consultRef': consultationId,
'authorRef': memberId,
'author': memberId,
'message': message,
},
permissions: [
app.Permission.read(
app.Role.team(
consultationId,
ConsultPermission.threadRead.code,
),
),
app.Permission.read(
app.Role.team(
consultationId,
'owner',
),
),
app.Permission.write(
app.Role.user(user.$id),
),
],
);
_logger.info('Created Thread for $memberId in $consultationId');
return ConsultationThread.fromJson(response.data);
} on app.AppwriteException catch (e, stackTrace) {
_logger.severe(e.message, e, stackTrace);
throw CreateThreadException(
e.message ?? 'Something went wrong, please try again later',
stackTrace,
);
} catch (e, stackTrace) {
_logger.severe(e.toString(), e, stackTrace);
throw CreateThreadException(
e.toString(),
stackTrace,
);
}
}
Summary
The user wants to know if they are allowed to set the permission for Role team. In this case, they are trying to set permissions for a thread in an app. The solution provided is to create an appwrite function to set the permissions. The code snippet provided shows how to create the thread and set the permissions using the appwrite library.