mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	etapi ZIP import
This commit is contained in:
		| @@ -33,13 +33,7 @@ paths: | ||||
|           content: | ||||
|             application/json; charset=utf-8: | ||||
|               schema: | ||||
|                 properties: | ||||
|                   note: | ||||
|                     $ref: '#/components/schemas/Note' | ||||
|                     description: Created note | ||||
|                   branch: | ||||
|                     $ref: '#/components/schemas/Branch' | ||||
|                     description: Created branch | ||||
|                 $ref: '#/components/schemas/NoteWithBranch' | ||||
|         default: | ||||
|           description: unexpected error | ||||
|           content: | ||||
| @@ -291,6 +285,29 @@ paths: | ||||
|             application/json; charset=utf-8: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Error' | ||||
|   /notes/{noteId}/import: | ||||
|     parameters: | ||||
|       - name: noteId | ||||
|         in: path | ||||
|         required: true | ||||
|         schema: | ||||
|           $ref: '#/components/schemas/EntityId' | ||||
|     post: | ||||
|       description: Imports ZIP file into a given note. | ||||
|       operationId: importZip | ||||
|       responses: | ||||
|         '201': | ||||
|           description: note created | ||||
|           content: | ||||
|             application/json; charset=utf-8: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/NoteWithBranch' | ||||
|         default: | ||||
|           description: unexpected error | ||||
|           content: | ||||
|             application/json; charset=utf-8: | ||||
|               schema: | ||||
|                 $ref: '#/components/schemas/Error' | ||||
|   /notes/{noteId}/note-revision: | ||||
|     parameters: | ||||
|       - name: noteId | ||||
| @@ -852,6 +869,13 @@ components: | ||||
|         utcDateModified: | ||||
|           $ref: '#/components/schemas/UtcDateTime' | ||||
|           readOnly: true | ||||
|     NoteWithBranch: | ||||
|       type: object | ||||
|       properties: | ||||
|         note: | ||||
|           $ref: '#/components/schemas/Note' | ||||
|         branch: | ||||
|           $ref: '#/components/schemas/Branch' | ||||
|     Attribute: | ||||
|       type: object | ||||
|       description: Attribute (Label, Relation) is a key-value record attached to a note. | ||||
|   | ||||
| @@ -8,6 +8,7 @@ const v = require("./validators"); | ||||
| const searchService = require("../services/search/services/search"); | ||||
| const SearchContext = require("../services/search/search_context"); | ||||
| const zipExportService = require("../services/export/zip"); | ||||
| const zipImportService = require("../services/import/zip"); | ||||
|  | ||||
| function register(router) { | ||||
|     eu.route(router, 'get', '/etapi/notes', (req, res, next) => { | ||||
| @@ -141,11 +142,21 @@ function register(router) { | ||||
|         // (e.g. branchIds are not seen in UI), that we export "note export" instead. | ||||
|         const branch = note.getParentBranches()[0]; | ||||
|  | ||||
|         console.log(note.getParentBranches()); | ||||
|  | ||||
|         zipExportService.exportToZip(taskContext, branch, format, res); | ||||
|     }); | ||||
|  | ||||
|     eu.route(router, 'post' ,'/etapi/notes/:noteId/import', (req, res, next) => { | ||||
|         const note = eu.getAndCheckNote(req.params.noteId); | ||||
|         const taskContext = new TaskContext('no-progress-reporting'); | ||||
|  | ||||
|         zipImportService.importZip(taskContext, req.body, note).then(importedNote => { | ||||
|             res.status(201).json({ | ||||
|                 note: mappers.mapNoteToPojo(importedNote), | ||||
|                 branch: mappers.mapBranchToPojo(importedNote.getBranches()[0]), | ||||
|             }); | ||||
|         }); // we need better error handling here, async errors won't be properly processed. | ||||
|     }); | ||||
|  | ||||
|     eu.route(router, 'post' ,'/etapi/notes/:noteId/note-revision', (req, res, next) => { | ||||
|         const note = eu.getAndCheckNote(req.params.noteId); | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,7 @@ const ws = require('./ws'); | ||||
| const taskContexts = {}; | ||||
|  | ||||
| class TaskContext { | ||||
|     constructor(taskId, taskType = null, data = null) { | ||||
|     constructor(taskId, taskType = null, data = {}) { | ||||
|         this.taskId = taskId; | ||||
|         this.taskType = taskType; | ||||
|         this.data = data; | ||||
|   | ||||
							
								
								
									
										12
									
								
								test-etapi/import-zip.http
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test-etapi/import-zip.http
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| POST {{triliumHost}}/etapi/notes/root/import | ||||
| Authorization: {{authToken}} | ||||
| Content-Type: application/octet-stream | ||||
| Content-Transfer-Encoding: binary | ||||
|  | ||||
| < ../db/demo.zip | ||||
|  | ||||
| > {% | ||||
|     client.assert(response.status === 201); | ||||
|     client.assert(response.body.note.title == "Trilium Demo"); | ||||
|     client.assert(response.body.branch.parentNoteId == "root"); | ||||
| %} | ||||
		Reference in New Issue
	
	Block a user