installLuccaClientCredentials method
Installs Lucca via client credentials — no browser redirect. The
Edge Function immediately validates the credentials by hitting
users/me; a successful response means the integration is ready.
Implementation
Future<OrgIntegrationModel> installLuccaClientCredentials({
required String orgId,
required String subdomain,
required String clientId,
required String clientSecret,
}) async {
final response = await _client.functions.invoke(
'integrations-oauth-start',
body: {
'org_id': orgId,
'provider': 'lucca',
'subdomain': subdomain,
'client_id': clientId,
'client_secret': clientSecret,
},
);
if (response.status != 200) {
throw StateError(
'installLucca failed (${response.status}): ${response.data}',
);
}
final row = response.data?['integration'] as Map<String, dynamic>?;
if (row == null) {
throw StateError('installLucca returned no integration');
}
return OrgIntegrationModel.fromJson(row);
}