forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebhooks.dart
More file actions
38 lines (36 loc) · 1.36 KB
/
Copy pathwebhooks.dart
File metadata and controls
38 lines (36 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import 'dart:convert';
import 'package:omi/backend/http/shared.dart';
import 'package:omi/backend/preferences.dart';
import 'package:omi/backend/schema/conversation.dart';
import 'package:omi/utils/logger.dart';
Future<String> webhookOnConversationCreatedCall(ServerConversation? conversation, {bool returnRawBody = false}) async {
if (conversation == null) return '';
Logger.debug('devModeWebhookCall: $conversation');
String url = SharedPreferencesUtil().webhookOnConversationCreated;
if (url.isEmpty) return '';
if (url.contains('?')) {
url += '&uid=${SharedPreferencesUtil().uid}';
} else {
url += '?uid=${SharedPreferencesUtil().uid}';
}
Logger.debug('triggerConversationRequestAtEndpoint: $url');
var data = conversation.toJson();
try {
var response = await makeApiCall(
url: url,
headers: {'Content-Type': 'application/json'},
body: jsonEncode(data),
method: 'POST',
);
Logger.debug('response: ${response?.statusCode}');
if (returnRawBody) return jsonEncode({'statusCode': response?.statusCode, 'body': response?.body});
var body = jsonDecode(response?.body ?? '{}');
return body['message'] ?? '';
} on FormatException catch (e) {
Logger.debug('Response not a valid json: $e');
return '';
} catch (e) {
Logger.debug('Error triggering conversation request at endpoint: $e');
return '';
}
}