get method

Future<Response> get(
  1. String urlName,
  2. Map<String, dynamic> data
)

Performs an authenticated HTTP GET request.

urlName is a dotted route name (e.g. 'user.profile'). data is sent as query parameters.

Implementation

Future<http.Response> get(String urlName, Map<String, dynamic> data) async {
  try {
    // get Url from dotted name
    String urlFromName = urls.getUrl(urlName);

    if (kDebugMode) {
      print('url from name $urlFromName');
    }
    await ensureHeaders({});
    // Build Uri form string
    var encodedData = data.map((key, value) {
      if (value is String) {
        return MapEntry(key, value);
      } else {
        return MapEntry(key, jsonEncode(value));
      }
    });
    var url = Uri.parse(urlFromName).replace(queryParameters: encodedData);
    if (kDebugMode) {
      print('url from name parsed $url');
    }
    // Perform request
    var response = await http.get(url, headers: _headers);
    // update cookies from response
    _updateCookie(response);
    return response;
  } catch (e) {
    log('Api service get error ${e.toString()}');
    rethrow;
  }
}