mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 03:29:02 +01:00 
			
		
		
		
	ETAPI put content
This commit is contained in:
		
							parent
							
								
									2532ea525d
								
							
						
					
					
						commit
						c5366abf75
					
				| @ -49,7 +49,7 @@ function register(router) { | |||||||
|     ru.route(router, 'delete' ,'/etapi/attributes/:attributeId', (req, res, next) => { |     ru.route(router, 'delete' ,'/etapi/attributes/:attributeId', (req, res, next) => { | ||||||
|         const attribute = becca.getAttribute(req.params.attributeId); |         const attribute = becca.getAttribute(req.params.attributeId); | ||||||
| 
 | 
 | ||||||
|         if (!attribute) { |         if (!attribute || attribute.isDeleted) { | ||||||
|             return res.sendStatus(204); |             return res.sendStatus(204); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -61,4 +61,4 @@ function register(router) { | |||||||
| 
 | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
|     register |     register | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -57,7 +57,7 @@ function register(router) { | |||||||
|     ru.route(router, 'delete' ,'/etapi/branches/:branchId', (req, res, next) => { |     ru.route(router, 'delete' ,'/etapi/branches/:branchId', (req, res, next) => { | ||||||
|         const branch = becca.getBranch(req.params.branchId); |         const branch = becca.getBranch(req.params.branchId); | ||||||
| 
 | 
 | ||||||
|         if (!branch) { |         if (!branch || branch.isDeleted) { | ||||||
|             return res.sendStatus(204); |             return res.sendStatus(204); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -13,19 +13,6 @@ function register(router) { | |||||||
|         res.json(mappers.mapNoteToPojo(note)); |         res.json(mappers.mapNoteToPojo(note)); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     ru.route(router, 'get', '/etapi/notes/:noteId/content', (req, res, next) => { |  | ||||||
|         const note = ru.getAndCheckNote(req.params.noteId); |  | ||||||
| 
 |  | ||||||
|         const filename = utils.formatDownloadTitle(note.title, note.type, note.mime); |  | ||||||
| 
 |  | ||||||
|         res.setHeader('Content-Disposition', utils.getContentDisposition(filename)); |  | ||||||
| 
 |  | ||||||
|         res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); |  | ||||||
|         res.setHeader('Content-Type', note.mime); |  | ||||||
| 
 |  | ||||||
|         res.send(note.getContent()); |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     ru.route(router, 'post' ,'/etapi/create-note', (req, res, next) => { |     ru.route(router, 'post' ,'/etapi/create-note', (req, res, next) => { | ||||||
|         const params = req.body; |         const params = req.body; | ||||||
| 
 | 
 | ||||||
| @ -67,7 +54,7 @@ function register(router) { | |||||||
| 
 | 
 | ||||||
|         const note = becca.getNote(noteId); |         const note = becca.getNote(noteId); | ||||||
| 
 | 
 | ||||||
|         if (!note) { |         if (!note || note.isDeleted) { | ||||||
|             return res.sendStatus(204); |             return res.sendStatus(204); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -75,6 +62,27 @@ function register(router) { | |||||||
| 
 | 
 | ||||||
|         res.sendStatus(204); |         res.sendStatus(204); | ||||||
|     }); |     }); | ||||||
|  | 
 | ||||||
|  |     ru.route(router, 'get', '/etapi/notes/:noteId/content', (req, res, next) => { | ||||||
|  |         const note = ru.getAndCheckNote(req.params.noteId); | ||||||
|  | 
 | ||||||
|  |         const filename = utils.formatDownloadTitle(note.title, note.type, note.mime); | ||||||
|  | 
 | ||||||
|  |         res.setHeader('Content-Disposition', utils.getContentDisposition(filename)); | ||||||
|  | 
 | ||||||
|  |         res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); | ||||||
|  |         res.setHeader('Content-Type', note.mime); | ||||||
|  | 
 | ||||||
|  |         res.send(note.getContent()); | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     ru.route(router, 'put', '/etapi/notes/:noteId/content', (req, res, next) => { | ||||||
|  |         const note = ru.getAndCheckNote(req.params.noteId); | ||||||
|  | 
 | ||||||
|  |         note.setContent(req.body); | ||||||
|  | 
 | ||||||
|  |         return res.sendStatus(204); | ||||||
|  |     }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
|  | |||||||
| @ -46,11 +46,17 @@ DELETE {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | |||||||
| 
 | 
 | ||||||
| > {% client.assert(response.status === 204, "Response status is not 204"); %} | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
| 
 | 
 | ||||||
|  | ### repeat the DELETE request to test the idempotency | ||||||
|  | 
 | ||||||
|  | DELETE {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | ||||||
|  | 
 | ||||||
|  | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
|  | 
 | ||||||
| ### | ### | ||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | GET {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "ATTRIBUTE_NOT_FOUND"); |     client.assert(response.body.code === "ATTRIBUTE_NOT_FOUND"); | ||||||
| %} | %} | ||||||
|  | |||||||
| @ -49,13 +49,19 @@ DELETE {{triliumHost}}/etapi/branches/{{createdBranchId}} | |||||||
| 
 | 
 | ||||||
| > {% client.assert(response.status === 204, "Response status is not 204"); %} | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
| 
 | 
 | ||||||
|  | ### repeat the DELETE request to test the idempotency | ||||||
|  | 
 | ||||||
|  | DELETE {{triliumHost}}/etapi/branches/{{createdBranchId}} | ||||||
|  | 
 | ||||||
|  | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
|  | 
 | ||||||
| ### | ### | ||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/branches/{{createdBranchId}} | GET {{triliumHost}}/etapi/branches/{{createdBranchId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "BRANCH_NOT_FOUND"); |     client.assert(response.body.code === "BRANCH_NOT_FOUND"); | ||||||
| %} | %} | ||||||
| 
 | 
 | ||||||
| ### | ### | ||||||
| @ -68,4 +74,4 @@ GET {{triliumHost}}/etapi/branches/{{clonedBranchId}} | |||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/notes/{{createdNoteId}} | GET {{triliumHost}}/etapi/notes/{{createdNoteId}} | ||||||
| 
 | 
 | ||||||
| > {% client.assert(response.status === 200, "Response status is not 200"); %} | > {% client.assert(response.status === 200, "Response status is not 200"); %} | ||||||
|  | |||||||
| @ -70,21 +70,27 @@ DELETE {{triliumHost}}/etapi/notes/{{createdNoteId}} | |||||||
| 
 | 
 | ||||||
| > {% client.assert(response.status === 204, "Response status is not 204"); %} | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
| 
 | 
 | ||||||
|  | ### repeat the DELETE request to test the idempotency | ||||||
|  | 
 | ||||||
|  | DELETE {{triliumHost}}/etapi/notes/{{createdNoteId}} | ||||||
|  | 
 | ||||||
|  | > {% client.assert(response.status === 204, "Response status is not 204"); %} | ||||||
|  | 
 | ||||||
| ### | ### | ||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/branches/{{createdBranchId}} | GET {{triliumHost}}/etapi/branches/{{createdBranchId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "BRANCH_NOT_FOUND"); |     client.assert(response.body.code === "BRANCH_NOT_FOUND"); | ||||||
| %} | %} | ||||||
| 
 | 
 | ||||||
| ### | ### | ||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/branches/{{clonedBranchId}} | GET {{triliumHost}}/etapi/branches/{{clonedBranchId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "BRANCH_NOT_FOUND"); |     client.assert(response.body.code == "BRANCH_NOT_FOUND"); | ||||||
| %} | %} | ||||||
| 
 | 
 | ||||||
| @ -92,16 +98,16 @@ GET {{triliumHost}}/etapi/branches/{{clonedBranchId}} | |||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/notes/{{createdNoteId}} | GET {{triliumHost}}/etapi/notes/{{createdNoteId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "NOTE_NOT_FOUND"); |     client.assert(response.body.code === "NOTE_NOT_FOUND"); | ||||||
| %} | %} | ||||||
| 
 | 
 | ||||||
| ### | ### | ||||||
| 
 | 
 | ||||||
| GET {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | GET {{triliumHost}}/etapi/attributes/{{createdAttributeId}} | ||||||
| 
 | 
 | ||||||
| > {%  | > {% | ||||||
|     client.assert(response.status === 404, "Response status is not 404");  |     client.assert(response.status === 404, "Response status is not 404"); | ||||||
|     client.assert(response.body.code == "ATTRIBUTE_NOT_FOUND"); |     client.assert(response.body.code === "ATTRIBUTE_NOT_FOUND"); | ||||||
| %} | %} | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								test-etapi/put-note-content.http
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								test-etapi/put-note-content.http
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | POST {{triliumHost}}/etapi/create-note | ||||||
|  | Content-Type: application/json | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   "parentNoteId": "root", | ||||||
|  |   "title": "Hello", | ||||||
|  |   "type": "code", | ||||||
|  |   "mime": "text/plain", | ||||||
|  |   "content": "Hi there!" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | > {% client.global.set("createdNoteId", response.body.note.noteId); %} | ||||||
|  | 
 | ||||||
|  | ### | ||||||
|  | 
 | ||||||
|  | PUT {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||||
|  | Content-Type: text/plain | ||||||
|  | 
 | ||||||
|  | Changed content | ||||||
|  | 
 | ||||||
|  | ### | ||||||
|  | 
 | ||||||
|  | GET {{triliumHost}}/etapi/notes/{{createdNoteId}}/content | ||||||
|  | 
 | ||||||
|  | > {% client.assert(response.body === "Changed content"); %} | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 zadam
						zadam