import 'dart:convert'; import '../data/session/session_storage.dart'; import 'package:http/http.dart' as http; class BaseService { int currentPage = 0; int limit = 20; int total = 0; //String baseUrl = 'hermogas.est.api.rdsistemas.app'; //produccion: joshipapas.api.edesarrollos.info //prueba: joshipapas.test.edesarrollos.info String base_url = 'https://joshipapas.test.edesarrollos.info/'; String baseUrl = 'joshipapas.test.edesarrollos.info'; Future> getDefaultHeaders({withAuth = true}) async { Map defaultHeaders = {'Content-Type': 'application/json'}; if (withAuth) { String? token = await SessionStorage().getToken(); defaultHeaders['Authorization'] = 'Bearer ${token ?? ''}'; } return defaultHeaders; } Future get(String endpoint, {bool withAuth = true, Map? queryParameters, Map? headers}) async { final uri = Uri.https(baseUrl, endpoint, queryParameters); var defaultHeaders = await getDefaultHeaders(withAuth: withAuth); var head = {...?headers, ...defaultHeaders}; return await http.get(uri, headers: head); } Future post(String endpoint, {bool withAuth = true, Map? queryParameters, Map? body, Map? headers}) async { final uri = Uri.https(baseUrl, endpoint, queryParameters); var defaultHeaders = await getDefaultHeaders(withAuth: withAuth); var head = {...?headers, ...defaultHeaders}; return await http.post(uri, body: json.encode(body), headers: head); } Future delete(String endpoint, {bool withAuth = true, Map? queryParameters, Map? body, Map? headers}) async { final uri = Uri.https(baseUrl, endpoint, queryParameters); var defaultHeaders = await getDefaultHeaders(withAuth: withAuth); var head = {...?headers, ...defaultHeaders}; return await http.delete(uri, body: json.encode(body), headers: head); } String prefijoVersion() { if (base_url.contains('api')) { return 'vP'; } else if (base_url.contains('test')) { return 'vT'; } return 'v'; // Versión genérica por si no coincide con api ni test } }