2021-02-02 14:33:23 +00:00
|
|
|
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';
|
2021-02-02 17:17:48 +00:00
|
|
|
import '../models/rest/uploaded_multi_response.dart';
|
2021-02-02 14:33:23 +00:00
|
|
|
import '../models/rest/uploaded_response.dart';
|
|
|
|
import '../services/api.dart';
|
|
|
|
|
|
|
|
class FileRepository {
|
|
|
|
Api _api = locator<Api>();
|
|
|
|
|
|
|
|
Future<History> getHistory() async {
|
|
|
|
var response = await _api.post('/file/history');
|
|
|
|
var parsedResponse = HistoryResponse.fromJson(json.decode(response.body));
|
|
|
|
return parsedResponse.data;
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Config> 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;
|
|
|
|
}
|
|
|
|
|
2021-11-29 23:44:22 +00:00
|
|
|
Future postDelete(String id) async {
|
|
|
|
var fields = Map.fromEntries([MapEntry("ids[1]", id)]);
|
|
|
|
var response = await _api.post('/file/delete', fields: fields);
|
|
|
|
return response;
|
2021-02-02 14:33:23 +00:00
|
|
|
}
|
|
|
|
|
2022-06-22 22:44:08 +00:00
|
|
|
Future<UploadedResponse> postUpload(List<File>? files, Map<String, String>? additionalFiles) async {
|
|
|
|
var response = await _api.post('/file/upload', files: files, additionalFiles: additionalFiles);
|
2021-02-02 14:33:23 +00:00
|
|
|
return UploadedResponse.fromJson(json.decode(response.body));
|
|
|
|
}
|
|
|
|
|
2021-05-09 08:59:14 +00:00
|
|
|
Future<UploadedMultiResponse> postCreateMultiPaste(List<String> ids) async {
|
2021-02-02 14:33:23 +00:00
|
|
|
Map<String, String> multiPasteIds = Map();
|
|
|
|
|
|
|
|
ids.forEach((element) {
|
2022-06-22 22:44:08 +00:00
|
|
|
multiPasteIds.putIfAbsent("ids[${ids.indexOf(element) + 1}]", () => element);
|
2021-02-02 14:33:23 +00:00
|
|
|
});
|
|
|
|
|
2022-06-22 22:44:08 +00:00
|
|
|
var response = await _api.post('/file/create_multipaste', fields: multiPasteIds);
|
2021-02-02 17:17:48 +00:00
|
|
|
return UploadedMultiResponse.fromJson(json.decode(response.body));
|
2021-02-02 14:33:23 +00:00
|
|
|
}
|
|
|
|
}
|