createInvitation method

Future<OrgInvitationModel> createInvitation({
  1. required String orgId,
  2. required String email,
  3. String role = 'member',
})

Implementation

Future<OrgInvitationModel> createInvitation({
  required String orgId,
  required String email,
  String role = 'member',
}) async {
  final userId = await _client.rpc(
    'find_user_by_email',
    params: {'p_email': email},
  );
  if (userId == null) {
    throw StateError('No user found with email: $email');
  }
  final response = await _client
      .from('org_invitations')
      .insert({
        'org_id': orgId,
        'invited_user_id': userId as String,
        'invited_by_user_id': _userId,
        'role': role,
      })
      .select('*, organizations(name)')
      .single();
  return OrgInvitationModel.fromJson(response);
}