import 'dart:convert'; import 'dart:io'; import '../../locator.dart'; import '../models/rest/config.dart'; import '../models/rest/config_response.dart'; import '../models/rest/history.dart'; import '../models/rest/history_response.dart'; import '../models/rest/uploaded_multi_response.dart'; import '../models/rest/uploaded_response.dart'; import '../services/api.dart'; class FileRepository { final Api _api = locator(); Future getHistory() async { var response = await _api.post('/file/history'); var parsedResponse = HistoryResponse.fromJson(json.decode(response.body)); return parsedResponse.data; } Future getConfig(String url) async { _api.setUrl(url); var response = await _api.fetch('/file/get_config'); var parsedResponse = ConfigResponse.fromJson(json.decode(response.body)); return parsedResponse.data; } Future postDelete(String id) async { var fields = Map.fromEntries([MapEntry("ids[1]", id)]); var response = await _api.post('/file/delete', fields: fields); return response; } Future postUpload( List? files, Map? additionalFiles) async { var response = await _api.post('/file/upload', files: files, additionalFiles: additionalFiles); return UploadedResponse.fromJson(json.decode(response.body)); } Future postCreateMultiPaste(List ids) async { Map multiPasteIds = {}; for (var element in ids) { multiPasteIds.putIfAbsent( "ids[${ids.indexOf(element) + 1}]", () => element); } var response = await _api.post('/file/create_multipaste', fields: multiPasteIds); return UploadedMultiResponse.fromJson(json.decode(response.body)); } }