saveNoteToPod function

Future<SolidFunctionCallStatus> saveNoteToPod(
  1. BuildContext context,
  2. Map noteNewData,
  3. Widget returnPage, [
  4. bool shared = false,
  5. Map prevSharedNoteInfo = const {},
])

Implementation

Future<SolidFunctionCallStatus> saveNoteToPod(
  BuildContext context,
  Map noteNewData,
  Widget returnPage, [
  bool shared = false,
  Map prevSharedNoteInfo = const {},
]) async {
  // Encrypt note text using created time as the key
  // av: 20250519 - We need to encrypt the note text because
  // at the moment rdflib cannot parse multiline text with
  // # (hash) values in them.
  String encNoteText = encryptVal(
    noteNewData[noteContentPred],
    noteNewData[createdDateTimePred],
  );

  // Create note file name
  // String noteFileName =
  //     '$noteFileNamePrefix$noteTitle-$dateTimeStr.ttl';
  String noteFileName =
      '$noteFileNamePrefix${noteNewData[createdDateTimePred]}.ttl';

  // Create TTL body for note
  final noteTTLStr = genNoteTTLStr(
    noteNewData[createdDateTimePred],
    noteNewData[modifiedDateTimePred],
    noteNewData[noteTitlePred],
    encNoteText,
  );

  if (shared) {
    // Get note url
    String noteFileUrl = prevSharedNoteInfo[noteUrl];

    // Get note owner webId
    String noteOwnerWebId = prevSharedNoteInfo[noteOwner];

    return await writeExternalPod(
      noteFileUrl,
      noteTTLStr,
      noteOwnerWebId,
      context,
      returnPage,
    );
  } else {
// Write note to POD
    return await writePod(
      noteFileName,
      noteTTLStr,
      context,
      returnPage,
      //encrypted: false, // save in plain text for now
    );
  }
}