genTTLStr function

Future<String> genTTLStr(
  1. List<({String key, dynamic value})> keyValuePairs
)

Serialise key/value pairs keyValuePairs in TTL format where

Subject: Web ID Predicate: Key Object: Value

Implementation

Future<String> genTTLStr(
    List<({String key, dynamic value})> keyValuePairs) async {
  assert(keyValuePairs.isNotEmpty);
  assert({for (final p in keyValuePairs) p.key}.length ==
      keyValuePairs.length); // No duplicate keys
  final webId = await getWebId();
  assert(webId != null);
  final g = Graph();
  final f = URIRef(webId!);
  final ns = Namespace(ns: appTerms);

  for (final p in keyValuePairs) {
    g.addTripleToGroups(f, ns.withAttr(p.key), p.value);
  }

  g.serialize(abbr: 'short');

  return g.serializedString;
}