import 'dart:async'; 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 base_url = 'https://dev.computosonora.com'; String baseUrl = 'dev.computosonora.com'; 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); } Map getHeader(String token) => { 'Authorization': 'Bearer ' + token, 'Accept': 'application/json', 'Content-Type': 'application/json', }; Future getHttp(String url, String token) async { try { return await http .get(Uri.parse(base_url + url), headers: getHeader(token)) .timeout(Duration(seconds: 120)); } on TimeoutException catch (e) { print(e); return null; } } 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); } }