upsertSsoConfig method

Future<OrgSsoConfigModel> upsertSsoConfig({
  1. required String orgId,
  2. required String entityId,
  3. required String ssoUrl,
  4. required String certificate,
  5. String? metadataXml,
  6. Map<String, dynamic>? attributeMapping,
  7. bool? enabled,
})

Implementation

Future<OrgSsoConfigModel> upsertSsoConfig({
  required String orgId,
  required String entityId,
  required String ssoUrl,
  required String certificate,
  String? metadataXml,
  Map<String, dynamic>? attributeMapping,
  bool? enabled,
}) async {
  final data = <String, dynamic>{
    'org_id': orgId,
    'provider': 'saml',
    'entity_id': entityId,
    'sso_url': ssoUrl,
    'certificate': certificate,
    'created_by': _userId,
    'updated_at': DateTime.now().toUtc().toIso8601String(),
  };
  if (metadataXml != null) data['metadata_xml'] = metadataXml;
  if (attributeMapping != null) data['attribute_mapping'] = attributeMapping;
  if (enabled != null) data['enabled'] = enabled;

  final response = await _client
      .from('org_sso_configs')
      .upsert(data, onConflict: 'org_id')
      .select()
      .single();
  return OrgSsoConfigModel.fromJson(response);
}