base_service.dart 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import 'dart:convert';
  2. import '../data/session/session_storage.dart';
  3. import 'package:http/http.dart' as http;
  4. class BaseService {
  5. int currentPage = 0;
  6. int limit = 20;
  7. int total = 0;
  8. //String baseUrl = 'hermogas.est.api.rdsistemas.app';
  9. //produccion: joshipapas.api.edesarrollos.info
  10. //prueba: joshipapas.test.edesarrollos.info
  11. String base_url = 'https://joshipapas.test.edesarrollos.info/';
  12. String baseUrl = 'joshipapas.test.edesarrollos.info';
  13. Future<Map<String, String>> getDefaultHeaders({withAuth = true}) async {
  14. Map<String, String> defaultHeaders = {'Content-Type': 'application/json'};
  15. if (withAuth) {
  16. String? token = await SessionStorage().getToken();
  17. defaultHeaders['Authorization'] = 'Bearer ${token ?? ''}';
  18. }
  19. return defaultHeaders;
  20. }
  21. Future<http.Response> get(String endpoint,
  22. {bool withAuth = true,
  23. Map<String, String>? queryParameters,
  24. Map<String, String>? headers}) async {
  25. final uri = Uri.https(baseUrl, endpoint, queryParameters);
  26. var defaultHeaders = await getDefaultHeaders(withAuth: withAuth);
  27. var head = {...?headers, ...defaultHeaders};
  28. return await http.get(uri, headers: head);
  29. }
  30. Future<http.Response> post(String endpoint,
  31. {bool withAuth = true,
  32. Map<String, String>? queryParameters,
  33. Map<String, dynamic>? body,
  34. Map<String, String>? headers}) async {
  35. final uri = Uri.https(baseUrl, endpoint, queryParameters);
  36. var defaultHeaders = await getDefaultHeaders(withAuth: withAuth);
  37. var head = {...?headers, ...defaultHeaders};
  38. return await http.post(uri, body: json.encode(body), headers: head);
  39. }
  40. Future<http.Response> delete(String endpoint,
  41. {bool withAuth = true,
  42. Map<String, String>? queryParameters,
  43. Map<String, dynamic>? body,
  44. Map<String, String>? headers}) async {
  45. final uri = Uri.https(baseUrl, endpoint, queryParameters);
  46. var defaultHeaders = await getDefaultHeaders(withAuth: withAuth);
  47. var head = {...?headers, ...defaultHeaders};
  48. return await http.delete(uri, body: json.encode(body), headers: head);
  49. }
  50. String prefijoVersion() {
  51. if (base_url.contains('api')) {
  52. return 'vP';
  53. } else if (base_url.contains('test')) {
  54. return 'vT';
  55. }
  56. return 'v'; // Versión genérica por si no coincide con api ni test
  57. }
  58. }