fbmobile/lib/core/repositories/file_repository.dart

56 lines
1.8 KiB
Dart
Raw Normal View History

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 {
2023-01-04 20:17:54 +00:00
final Api _api = locator<Api>();
2021-02-02 14:33:23 +00:00
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;
}
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
}
2023-01-16 00:44:34 +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));
}
Future<UploadedMultiResponse> postCreateMultiPaste(List<String> ids) async {
2023-01-04 20:17:54 +00:00
Map<String, String> multiPasteIds = {};
2021-02-02 14:33:23 +00:00
2023-01-04 20:17:54 +00:00
for (var element in ids) {
2023-01-16 00:44:34 +00:00
multiPasteIds.putIfAbsent(
"ids[${ids.indexOf(element) + 1}]", () => element);
2023-01-04 20:17:54 +00:00
}
2021-02-02 14:33:23 +00:00
2023-01-16 00:44:34 +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
}
}