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);
}