Line data Source code
1 : import 'package:dio/dio.dart'; 2 : import 'package:stream_feed_dart/src/core/http/stream_http_client.dart'; 3 : import 'package:stream_feed_dart/src/core/http/token.dart'; 4 : import 'package:stream_feed_dart/src/core/util/routes.dart'; 5 : 6 : class ImagesApi { 7 3 : const ImagesApi(this.client); 8 : 9 : final StreamHttpClient client; 10 : 11 1 : Future<String?> upload(Token token, MultipartFile image) async { 12 3 : final result = await client.postFile<Map>( 13 1 : Routes.imagesUrl, 14 : image, 15 2 : headers: {'Authorization': '$token'}, 16 : ); 17 2 : return result.data!['file']; 18 : } 19 : 20 3 : Future<Response> delete(Token token, String targetUrl) => client.delete( 21 1 : Routes.imagesUrl, 22 2 : headers: {'Authorization': '$token'}, 23 1 : queryParameters: {'url': targetUrl}, 24 : ); 25 : 26 1 : Future<String?> get( 27 : Token token, 28 : String targetUrl, { 29 : Map<String, Object?>? options, 30 : }) async { 31 3 : final result = await client.get( 32 1 : Routes.imagesUrl, 33 2 : headers: {'Authorization': '$token'}, 34 1 : queryParameters: { 35 1 : 'url': targetUrl, 36 0 : if (options != null) ...options, 37 : }, 38 : ); 39 2 : return result.data['file']; 40 : } 41 : }