POST {{triliumHost}}/etapi/create-note Authorization: {{authToken}} Content-Type: application/json { "noteId": "forcedId{{$randomInt}}", "branchId": "forcedId{{$randomInt}}", "parentNoteId": "root", "title": "Hello", "type": "text", "content": "Hi there!" } > {% client.assert(response.status === 201); client.assert(response.body.note.noteId.startsWith("forcedId")); client.assert(response.body.note.title == "Hello"); client.assert(response.body.branch.branchId.startsWith("forcedId")); client.assert(response.body.branch.parentNoteId == "root"); client.log(`Created note ` + response.body.note.noteId + ` and branch ` + response.body.branch.branchId); client.global.set("createdNoteId", response.body.note.noteId); client.global.set("createdBranchId", response.body.branch.branchId); %} ### Clone to another location POST {{triliumHost}}/etapi/branches Authorization: {{authToken}} Content-Type: application/json { "branchId": "forcedClonedId", "noteId": "{{createdNoteId}}", "parentNoteId": '_hidden' } > {% client.assert(response.status === 201); client.assert(response.body.parentNoteId == '_hidden'); client.global.set("clonedBranchId", response.body.branchId); client.log(`Created cloned branch ` + response.body.branchId); %} ### GET {{triliumHost}}/etapi/notes/{{createdNoteId}} Authorization: {{authToken}} > {% client.assert(response.status === 200); client.assert(response.body.noteId == client.global.get("createdNoteId")); client.assert(response.body.title == "Hello"); // order is not defined and may fail in the future client.assert(response.body.parentBranchIds[0] == client.global.get("clonedBranchId")) client.assert(response.body.parentBranchIds[1] == client.global.get("createdBranchId")); %} ### GET {{triliumHost}}/etapi/notes/{{createdNoteId}}/content Authorization: {{authToken}} > {% client.assert(response.status === 200); client.assert(response.body == "Hi there!"); %} ### GET {{triliumHost}}/etapi/branches/{{createdBranchId}} Authorization: {{authToken}} > {% client.assert(response.status === 200); client.assert(response.body.branchId == client.global.get("createdBranchId")); client.assert(response.body.parentNoteId == "root"); %} ### GET {{triliumHost}}/etapi/branches/{{clonedBranchId}} Authorization: {{authToken}} > {% client.assert(response.status === 200); client.assert(response.body.branchId == client.global.get("clonedBranchId")); client.assert(response.body.parentNoteId == '_hidden'); %} ### POST {{triliumHost}}/etapi/attributes Content-Type: application/json Authorization: {{authToken}} { "attributeId": "forcedAttributeId{{$randomInt}}", "noteId": "{{createdNoteId}}", "type": "label", "name": "mylabel", "value": "val", "isInheritable": true } > {% client.assert(response.status === 201); client.assert(response.body.attributeId.startsWith("forcedAttributeId")); client.global.set("createdAttributeId", response.body.attributeId); %} ### GET {{triliumHost}}/etapi/attributes/{{createdAttributeId}} Authorization: {{authToken}} > {% client.assert(response.status === 200); client.assert(response.body.attributeId == client.global.get("createdAttributeId")); %}