forked from baron/baron-sso
41 lines
1.0 KiB
Dart
41 lines
1.0 KiB
Dart
import 'dart:convert';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:http/http.dart' as http;
|
|
import 'runtime_env.dart';
|
|
|
|
class AuditService {
|
|
static String get _baseUrl => runtimeBackendUrl();
|
|
|
|
static Future<void> logEvent({
|
|
required String userId,
|
|
required String eventType,
|
|
required String status,
|
|
String? details,
|
|
}) async {
|
|
final url = Uri.parse('$_baseUrl/api/v1/audit');
|
|
|
|
try {
|
|
final response = await http.post(
|
|
url,
|
|
headers: {'Content-Type': 'application/json'},
|
|
body: jsonEncode({
|
|
'user_id': userId,
|
|
'event_type': eventType,
|
|
'status': status,
|
|
'details': details,
|
|
}),
|
|
);
|
|
|
|
if (response.statusCode >= 200 && response.statusCode < 300) {
|
|
debugPrint('Audit log sent successfully');
|
|
} else {
|
|
debugPrint(
|
|
'Failed to send audit log: ${response.statusCode} ${response.body}',
|
|
);
|
|
}
|
|
} catch (e) {
|
|
debugPrint('Error sending audit log: $e');
|
|
}
|
|
}
|
|
}
|