From d9f6c8c8e03af7bf6b06d50cb9671dbe7466bfb8 Mon Sep 17 00:00:00 2001 From: stopflock Date: Thu, 28 Aug 2025 12:39:30 -0500 Subject: [PATCH] Update existing node instead of creating new. DNU ANY COMMIT ON THIS BRANCH PRIOR TO HERE!!!!111!!!1!! --- lib/services/uploader.dart | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/lib/services/uploader.dart b/lib/services/uploader.dart index 04d4ca2..ab9c37f 100644 --- a/lib/services/uploader.dart +++ b/lib/services/uploader.dart @@ -34,28 +34,45 @@ class Uploader { final csId = csResp.body.trim(); print('Uploader: Created changeset ID: $csId'); - // 2. create node - // Merge tags: direction in PendingUpload should always be present, - // and override any in the profile for upload purposes + // 2. create or update node final mergedTags = Map.from(p.profile.tags) ..['direction'] = p.direction.round().toString(); final tagsXml = mergedTags.entries.map((e) => '').join('\n '); - final nodeXml = ''' + + final http.Response nodeResp; + final String nodeId; + + if (p.isEdit) { + // Update existing node + final nodeXml = ''' + + + $tagsXml + + '''; + print('Uploader: Updating node ${p.originalNodeId}...'); + nodeResp = await _put('/api/0.6/node/${p.originalNodeId}', nodeXml); + nodeId = p.originalNodeId.toString(); + } else { + // Create new node + final nodeXml = ''' $tagsXml '''; - print('Uploader: Creating node...'); - final nodeResp = await _put('/api/0.6/node/create', nodeXml); + print('Uploader: Creating new node...'); + nodeResp = await _put('/api/0.6/node/create', nodeXml); + nodeId = nodeResp.body.trim(); + } + print('Uploader: Node response: ${nodeResp.statusCode} - ${nodeResp.body}'); if (nodeResp.statusCode != 200) { - print('Uploader: Failed to create node'); + print('Uploader: Failed to ${p.isEdit ? "update" : "create"} node'); return false; } - final nodeId = nodeResp.body.trim(); - print('Uploader: Created node ID: $nodeId'); + print('Uploader: ${p.isEdit ? "Updated" : "Created"} node ID: $nodeId'); // 3. close changeset print('Uploader: Closing changeset...');