-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathraygun_api.dart
More file actions
42 lines (34 loc) · 995 Bytes
/
raygun_api.dart
File metadata and controls
42 lines (34 loc) · 995 Bytes
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
39
40
41
42
import 'dart:io';
import 'package:http/http.dart';
class RaygunMultipartRequestBuilder {
late final MultipartRequest _request;
RaygunMultipartRequestBuilder(String url, String requestType) {
_request = MultipartRequest(requestType, Uri.parse(url));
}
RaygunMultipartRequestBuilder addBearerToken(String token) {
_request.headers['Authorization'] = 'Bearer $token';
return this;
}
RaygunMultipartRequestBuilder addFile(String field, String filePath) {
final file = File(filePath);
if (!file.existsSync()) {
throw Exception('File not found: $filePath');
}
_request.files.add(
MultipartFile(
field,
file.readAsBytes().asStream(),
file.lengthSync(),
filename: filePath.split("/").last,
),
);
return this;
}
RaygunMultipartRequestBuilder addField(String field, String value) {
_request.fields[field] = value;
return this;
}
MultipartRequest build() {
return _request;
}
}