(req, res, next)
| 745 | } |
| 746 | |
| 747 | async deleteHandler(req, res, next) { |
| 748 | if (req.auth.isReadOnly) { |
| 749 | const error = createSanitizedHttpError(403, "read-only masterKey isn't allowed to delete a file.", req.config); |
| 750 | res.status(error.status); |
| 751 | res.end(`{"error":"${error.message}"}`); |
| 752 | return; |
| 753 | } |
| 754 | try { |
| 755 | const { filesController } = req.config; |
| 756 | const filename = FilesRouter._getFilenameFromParams(req); |
| 757 | // run beforeDeleteFile trigger |
| 758 | const file = new Parse.File(filename); |
| 759 | file._url = await filesController.adapter.getFileLocation(req.config, filename); |
| 760 | const fileObject = { file, fileSize: null }; |
| 761 | await triggers.maybeRunFileTrigger( |
| 762 | triggers.Types.beforeDelete, |
| 763 | fileObject, |
| 764 | req.config, |
| 765 | req.auth |
| 766 | ); |
| 767 | // delete file |
| 768 | await filesController.deleteFile(req.config, filename); |
| 769 | // run afterDeleteFile trigger |
| 770 | await triggers.maybeRunFileTrigger( |
| 771 | triggers.Types.afterDelete, |
| 772 | fileObject, |
| 773 | req.config, |
| 774 | req.auth |
| 775 | ); |
| 776 | res.status(200); |
| 777 | // TODO: return useful JSON here? |
| 778 | res.end(); |
| 779 | } catch (e) { |
| 780 | logger.error('Error deleting a file: ', e); |
| 781 | const error = triggers.resolveError(e, { |
| 782 | code: Parse.Error.FILE_DELETE_ERROR, |
| 783 | message: 'Could not delete file.', |
| 784 | }); |
| 785 | next(error); |
| 786 | } |
| 787 | } |
| 788 | |
| 789 | async metadataHandler(req, res) { |
| 790 | try { |
nothing calls this directly
no test coverage detected