This repository has been archived on 2024-10-16. You can view files and clone it, but cannot push or open issues or pull requests.
discord-dart/lib/src/requests.dart

79 lines
2.3 KiB
Dart
Raw Normal View History

2023-08-02 12:48:55 +02:00
import 'main.dart';
2023-08-04 19:19:21 +02:00
import 'types.dart';
2023-08-02 12:48:55 +02:00
import 'package:http/http.dart' as http;
import 'dart:convert';
final headerswh = {
"Content-Type": "application/json"
};
Future<http.Response> sendWH(Map content, String token, String id) {
final url = Uri.parse("$apiURL/webhooks/$id/$token");
return http.post(url, body: json.encode(content), headers: headerswh);
}
Future<http.Response> editWH(Map content, String token, String id, String mid) {
final url = Uri.parse("$apiURL/webhooks/$id/$token/messages/$mid");
return http.patch(url, body: json.encode(content), headers: headerswh);
}
Future<http.Response> getWH(String token, String id, String mid) {
final url = Uri.parse("$apiURL/webhooks/$id/$token/messages/$mid");
return http.get(url);
}
Future<http.Response> deleteWH(String token, String id, String mid) {
final url = Uri.parse("$apiURL/webhooks/$id/$token/messages/$mid");
return http.delete(url);
}
Future<String> requestWebSocketURL() async {
final url = Uri.parse("$apiURL/gateway");
dynamic res = await http.get(url);
res = json.decode(res.body);
return res["url"];
}
class Sender {
2023-08-04 19:19:21 +02:00
final String? _token;
2023-08-02 12:48:55 +02:00
Map<String, String> headers = {};
2023-08-04 19:19:21 +02:00
Sender(this._token) {
2023-08-02 12:48:55 +02:00
headers = {
"Content-Type": "application/json",
2023-08-04 19:19:21 +02:00
"Authorization": "Bot $_token",
2023-08-02 12:48:55 +02:00
};
}
2023-08-03 18:11:30 +02:00
Future getServers() async {
final url = Uri.parse("$apiURL/users/@me/guilds");
dynamic res = await http.get(url, headers: headers);
res = json.decode(res.body);
return res;
}
2023-08-04 19:19:21 +02:00
Future send(Message msg, String cid) async {
final url = Uri.parse("$apiURL/channels/$cid/messages");
dynamic res = await http.post(url, headers: headers, body: json.encode(msg.exportable()));
res = json.decode(res.body);
return res;
}
Future fetchGuild(String id) async {
dynamic res = await http.get(Uri.parse("$apiURL/guilds/$id"), headers: headers);
if (res.statusCode != 200) {
throw Exception("Error ${res.statusCode} receiving the guild");
}
res = json.decode(res.body);
return res;
}
Future fetchChannel(String id) async {
dynamic res = await http.get(Uri.parse("$apiURL/channels/$id"), headers: headers);
if (res.statusCode != 200) {
throw Exception("Error ${res.statusCode} receiving the channel");
}
res = json.decode(res.body);
return res;
}
}