general_service.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'dart:math';
  2. import 'package:camera/camera.dart';
  3. import '../data/session/session_storage.dart';
  4. import '../services/services.dart';
  5. import 'package:http/http.dart' as http;
  6. class GeneralService extends BaseService {
  7. String endPoint = '/servicios/visita';
  8. String postdistancia = '/servicios/visita/calcular-distancia';
  9. Map<String, String> defaultQueryParameters = {"ordenar":"id-desc"};
  10. Future<http.StreamedResponse> enviarMedia({required int id, required XFile media, String? modulo, String? tipo, String? etiquetaID}) async {
  11. //ejemplo: tipo = imagen, modulo = Visita
  12. final token = await SessionStorage().getToken();
  13. String completo = "$base_url/admin/subir-archivo/guardar";
  14. String nombre = "generico";
  15. http.MultipartRequest request = http.MultipartRequest('POST', Uri.parse(completo));
  16. request.headers.addAll({
  17. 'Content-type': 'multipart/form-data',
  18. 'Accept': 'application/json',
  19. 'Authorization': "Bearer $token"
  20. });
  21. if(tipo == "archivo"){
  22. final random = Random();
  23. final randomInt = random.nextInt(99999);
  24. int lastIndex = media.name.lastIndexOf('.');
  25. nombre = "$randomInt";
  26. if (lastIndex != -1 && lastIndex < media.name.length - 1) {
  27. String ext = media.name.substring(lastIndex + 1);
  28. nombre = "$nombre.${ext.toLowerCase()}";
  29. }
  30. nombre = media.name.toString();
  31. }
  32. if(tipo == "imagen"){
  33. final random = Random();
  34. final randomInt = random.nextInt(99999);
  35. nombre = "$randomInt.jpg";
  36. }
  37. if(tipo == "audio"){
  38. final random = Random();
  39. final randomInt = random.nextInt(99999);
  40. nombre = "$randomInt.wav";
  41. }
  42. request.fields[etiquetaID.toString()] = "$id";
  43. request.fields[modulo.toString()] = '1';
  44. request.fields['tipo'] = tipo.toString();
  45. request.files.add(
  46. http.MultipartFile(
  47. 'archivo',
  48. media.openRead(),
  49. await media.length(),
  50. filename: nombre,
  51. ),
  52. );
  53. return await request.send();
  54. }
  55. }