Line data Source code
1 : import 'package:dio/dio.dart'; 2 : import 'package:stream_feed_dart/src/core/api/images_api.dart'; 3 : import 'package:stream_feed_dart/src/core/http/token.dart'; 4 : import 'package:stream_feed_dart/src/core/index.dart'; 5 : import 'package:stream_feed_dart/src/core/util/token_helper.dart'; 6 : 7 : class ImageStorageClient { 8 2 : ImageStorageClient(this.images, {this.userToken, this.secret}) 9 : : assert( 10 0 : userToken != null || secret != null, 11 : 'At least a secret or userToken must be provided', 12 : ); 13 : final String? secret; 14 : final Token? userToken; 15 : final ImagesApi images; 16 : 17 1 : Future<String?> upload(MultipartFile image) { 18 : final token = 19 1 : userToken ?? TokenHelper.buildFilesToken(secret!, TokenAction.write); 20 2 : return images.upload(token, image); 21 : } 22 : 23 1 : Future<void> delete(String url) { 24 : final token = 25 1 : userToken ?? TokenHelper.buildFilesToken(secret!, TokenAction.delete); 26 2 : return images.delete(token, url); 27 : } 28 : 29 1 : Future<String?> get(String url) { 30 : final token = 31 1 : userToken ?? TokenHelper.buildFilesToken(secret!, TokenAction.read); 32 2 : return images.get(token, url); 33 : } 34 : 35 0 : Future<String?> getCropped(String url, Crop crop) { 36 : final token = 37 0 : userToken ?? TokenHelper.buildFilesToken(secret!, TokenAction.read); 38 0 : return images.get(token, url, options: crop.params); 39 : } 40 : 41 0 : Future<String?> getResized(String url, Resize resize) { 42 : final token = 43 0 : userToken ?? TokenHelper.buildFilesToken(secret!, TokenAction.read); 44 0 : return images.get(token, url, options: resize.params); 45 : } 46 : }