generate method Null safety

String generate(
  1. String method,
  2. String className,
  3. DateTime time,
  4. {dynamic objectId = '',
  5. dynamic queries = const {},
  6. dynamic definePath = ''}
)

Implementation

String generate(String method, String className, DateTime time,
    {objectId = '', queries = const {}, definePath = ''}) {
  baseInfo['X-NCMB-Timestamp'] = time.toIso8601String();
  List sigList = [];
  queries.forEach((key, value) {
    if (value is Map || value is List) {
      value = jsonEncode(value);
    }
    if (value is int) {
      value = value.toString();
    }
    baseInfo[key] = Uri.encodeQueryComponent(value);
  });
  baseInfo.keys
      .toList()
      .forEach((key) => sigList.add("$key=${baseInfo[key]}"));
  sigList.sort();
  String queryString = sigList.join('&');
  String str = [
    method,
    _fqdn,
    path(className, objectId: objectId, definePath: definePath),
    queryString
  ].join("\n");
  List<int> key = utf8.encode(_ncmb!.clientKey!);
  Hmac hmac = new Hmac(sha256, key);
  return base64Encode(hmac.convert(str.codeUnits).bytes);
}