Files
sendico/frontend/pshared/lib/service/files.dart
2025-11-13 15:06:15 +03:00

39 lines
1.1 KiB
Dart

import 'dart:math';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:share_plus/share_plus.dart';
import 'package:pshared/service/authorization/service.dart';
import 'package:pshared/utils/image/conversion.dart';
import 'package:pshared/utils/image/transformed.dart';
String generateRandomLatinString(int length) {
const String chars = 'abcdefghijklmnopqrstuvwxyz';
final Random random = Random.secure();
return List.generate(length, (index) => chars[random.nextInt(chars.length)]).join();
}
class FilesService {
static Future<String> uploadImage(
String objectType,
String? id,
XFile imageFile, {
Future<TransformedImage> Function(XFile) fileReader = defaultTransformImage,
}) async {
final objRef = id ?? generateRandomLatinString(16);
final image = await fileReader(imageFile);
final res = await AuthorizationService.getFileUploadResponseAuth(
objectType,
'image/$objRef',
'$objRef.${image.imageType.split('/').last}',
'image',
image.imageType,
image.bytes
);
CachedNetworkImage.evictFromCache(res);
return res;
}
}