import 'dart:convert'; import 'package:loris/business_logic/timeline/timeline.dart'; import 'package:http/http.dart' as http; import 'package:loris/global.dart' as global; class MakePostModel { final String identity; final String status; final String spoilerText; final Visibility visibility; final String? scheduledAt; final String? inReplyToId; List mediaIds; MakePostModel({ required this.identity, required this.status, required this.spoilerText, required this.visibility, required this.mediaIds, this.scheduledAt, this.inReplyToId, }); Future sendPost() async { final headers = global.settings!.identities[identity]!.getAuthHeaders(); headers.addAll(global.defaultHeaders); Map params = { "status": status, "sensitive": false, "visibility": visibility.queryParam, "media_ids": mediaIds, }; if (inReplyToId != null) { params.addAll({ "in_reply_to_id": inReplyToId, }); } if (spoilerText.isNotEmpty) { params.addAll({ "spoiler_text": spoilerText, "sensitive": true, }); } final url = Uri( scheme: "https", host: global.settings!.identities[identity]!.instanceUrl, path: "/api/v1/statuses", ); final response = await http.post( url, headers: headers, body: jsonEncode(params), ); return response; } }