| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | const becca = require("../../becca/becca"); | 
					
						
							| 
									
										
										
										
											2023-05-05 16:37:39 +02:00
										 |  |  | const blobService = require("../../services/blob.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function getAttachmentBlob(req) { | 
					
						
							| 
									
										
										
										
											2023-05-05 22:21:51 +02:00
										 |  |  |     const preview = req.query.preview === 'true'; | 
					
						
							| 
									
										
										
										
											2023-05-05 16:37:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-05 22:21:51 +02:00
										 |  |  |     return blobService.getBlobPojo('attachments', req.params.attachmentId, { preview }); | 
					
						
							| 
									
										
										
										
											2023-05-05 16:37:39 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | function getAttachments(req) { | 
					
						
							| 
									
										
										
										
											2023-05-08 00:02:08 +02:00
										 |  |  |     const note = becca.getNoteOrThrow(req.params.noteId); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-21 18:14:17 +02:00
										 |  |  |     return note.getAttachments({includeContentLength: true}); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function getAttachment(req) { | 
					
						
							| 
									
										
										
										
											2023-04-14 16:49:06 +02:00
										 |  |  |     const {attachmentId} = req.params; | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-21 18:14:17 +02:00
										 |  |  |     return becca.getAttachmentOrThrow(attachmentId, {includeContentLength: true}); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function saveAttachment(req) { | 
					
						
							|  |  |  |     const {noteId} = req.params; | 
					
						
							|  |  |  |     const {attachmentId, role, mime, title, content} = req.body; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-08 00:02:08 +02:00
										 |  |  |     const note = becca.getNoteOrThrow(noteId); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  |     note.saveAttachment({attachmentId, role, mime, title, content}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function deleteAttachment(req) { | 
					
						
							| 
									
										
										
										
											2023-04-14 16:49:06 +02:00
										 |  |  |     const {attachmentId} = req.params; | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-14 16:49:06 +02:00
										 |  |  |     const attachment = becca.getAttachment(attachmentId); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (attachment) { | 
					
						
							|  |  |  |         attachment.markAsDeleted(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function convertAttachmentToNote(req) { | 
					
						
							| 
									
										
										
										
											2023-04-14 16:49:06 +02:00
										 |  |  |     const {attachmentId} = req.params; | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-08 00:02:08 +02:00
										 |  |  |     const attachment = becca.getAttachmentOrThrow(attachmentId); | 
					
						
							| 
									
										
										
										
											2023-04-14 16:49:06 +02:00
										 |  |  |     return attachment.convertToNote(); | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							| 
									
										
										
										
											2023-05-05 16:37:39 +02:00
										 |  |  |     getAttachmentBlob, | 
					
						
							| 
									
										
										
										
											2023-04-01 23:55:04 +02:00
										 |  |  |     getAttachments, | 
					
						
							|  |  |  |     getAttachment, | 
					
						
							|  |  |  |     saveAttachment, | 
					
						
							|  |  |  |     deleteAttachment, | 
					
						
							|  |  |  |     convertAttachmentToNote | 
					
						
							|  |  |  | }; |