createOAuthClient method
POST /accounts/projects/{project_id}/oauth/clients Body: { grant_types, response_types, redirect_uris, scope, metadata? } Returns the newly created OAuthClient (often includes client_secret).
Implementation
Future<OAuthClient> createOAuthClient(
String projectId, {
required List<String> grantTypes,
required List<String> responseTypes,
required List<String> redirectUris,
required String scope,
Map<String, dynamic>? metadata,
}) async {
final uri = Uri.parse('$baseUrl/accounts/projects/$projectId/oauth/clients');
final body = <String, dynamic>{
'grant_types': grantTypes,
'response_types': responseTypes,
'redirect_uris': redirectUris,
'scope': scope,
'metadata': metadata ?? <String, dynamic>{},
};
final response = await http.post(uri, headers: _getHeaders(), body: jsonEncode(body));
if (response.statusCode >= 400) {
throw MeshagentException(
'Failed to create OAuth client. '
'Status code: ${response.statusCode}, body: ${response.body}',
);
}
return OAuthClient.fromJson(jsonDecode(response.body)["client"]);
}