David Mehren
ff0651e659
FilesystemBackend: Ensure uploads directory exists
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 12:28:52 +02:00
David Mehren
fff46f0255
Add E2E tests for the /media
route
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:50:45 +02:00
David Mehren
ac2646a74a
AppModule: Remove unused imports
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:49:19 +02:00
David Mehren
2b23dcc5a9
MediaService: Simplify saveFile
signature
...
As the `saveFile` method only really uses the files `Buffer`, this commit changes the signature so it directly gets a `Buffer` instead of a complicated `MulterFile` object. This also simplifies testing.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:49:01 +02:00
David Mehren
53fbe82b6a
UserEntity: Fix column types for create/update dates
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:34:49 +02:00
David Mehren
558addf83e
UsersService: Improve logging in getNoteByIdOrAlias
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:34:16 +02:00
David Mehren
15db6a9b2a
Use useStaticAssets
instead of @nestjs/serve-static
...
`serve-static` does not work with `createTestingModule` and is not recommended when "just" serving a few images.
See https://github.com/nestjs/serve-static/issues/240
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 11:32:23 +02:00
David Mehren
bd1a6e528e
Public API: Add media deletion
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 21:55:05 +02:00
David Mehren
490e4cac69
MediaController: Add DELETE /{filename}
route
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 21:54:44 +02:00
David Mehren
eeb3f6f5a7
MediaService: Implement delete feature
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 21:54:08 +02:00
David Mehren
5262a58639
FilesystemBackend: ESLint fixes
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 21:53:34 +02:00
David Mehren
16dfbdd42d
UsersService: Wait for the DB to find a user
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 21:52:59 +02:00
David Mehren
f4c73a8f96
Use POST /media
for file upload
...
The old `/media/upload` subpath does not follow the convention of REST APIs.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 20:58:10 +02:00
David Mehren
eb77642604
Public API: Update /media/upload
route with supported content-types
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 20:55:40 +02:00
David Mehren
c2c51f1eef
MediaService: Only allow upload of common image formats and PDFs
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 20:50:20 +02:00
David Mehren
d41b68b41a
Add various missing imports and provider ovverides in unit tests
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 20:21:22 +02:00
David Mehren
5a07abfd43
MediaController: Handle errors when trying to save file
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 18:51:29 +02:00
David Mehren
0cc9c6b347
MediaService: Improve error handling and logging
...
Add debug logging to `saveFile` method and throw the proper errors when problems with the mime type are encountered
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 18:50:53 +02:00
David Mehren
219a3bcb5f
UsersService: Add methods to find, create and delete users
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-12 21:46:53 +02:00
David Mehren
1f22f47327
NotesService: Throw NotInDBError
when the note wasn't found
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 18:47:10 +02:00
David Mehren
273d9b2d19
MediaController: Get parent note from HedgeDoc-Note
header
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 16:44:00 +02:00
David Mehren
a877f57875
FilesystemBackend: Implement deleteFile
and getFileURL
.
...
We use `fs.unlink` instead of `fs.rm`, as the latter is only available in the fsPromises API since Node 14.14
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-17 16:24:30 +02:00
David Mehren
9b3345fa13
Use serve-static
to serve uploaded files.
...
Add `@nestjs/serve-static` to serve uploaded media from the upload directory on the local filesystem.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:38:31 +02:00
David Mehren
e2b5acaf84
MediaController: Use MediaService
to store media
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:37:20 +02:00
David Mehren
c0cbcc863a
Add MediaService
...
This service is responsible for operations regarding uploaded media. It should perform save, get and delete operations with the configured backend.
The service also checks, if the mime type of the uploaded media is allowed.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:35:53 +02:00
David Mehren
23ba2026cc
Do not save file extension as a separate field.
...
It turned out that saving the file extension in a separate field is not necessary. Instead, the extension is saved in the complete filename in the `id` field.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:32:58 +02:00
David Mehren
dc49bfcccb
Implement filesystem media backend
...
This backend stores uploaded media into files on the local filesystem.
This commit also adds a `BackendType` enum, which can be used to distinguish different media backends.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:30:57 +02:00
David Mehren
db15afcb88
Define a MediaBackend interface
...
This interface defines the functionality that all media backends (like S3 or Azure) must implement.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-16 22:29:13 +02:00
David Mehren
617f46f32f
Add MediaUpload entity & Media module
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-13 10:33:54 +02:00
David Mehren
5cc20707dc
DB Schema: Add MediaUpload entity
...
MediaUpload stores the uploading user, the note the media was uploaded to and backend data.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-13 10:19:12 +02:00
David Mehren
3ccfc9bbb7
Public API: /media/upload returns the URL of the uploaded file
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-12 21:51:09 +02:00
Jonas Zohren
139e1156da
Source version from package.json
...
Signed-off-by: Jonas Zohren <jonas.zohren@adesso.de>
2020-10-05 20:39:35 +02:00
David Mehren
95a809f0a3
Collect coverage information for E2E tests
...
As proposed in https://github.com/nestjs/nest/issues/3169#issuecomment-588287478
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-03 18:00:12 +02:00
David Mehren
108c5e670c
NestConsoleLoggerService: Propagate trace
parameter to consoleLoggerService
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-03 15:52:07 +02:00
renovate[bot]
73cbf17aca
Update dependency mermaid to v8.8.1 ( #638 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:46:09 +02:00
renovate[bot]
0d119b3ab2
Update dependency vega to v5.17.0 ( #639 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:44:24 +02:00
renovate[bot]
b2d9937b25
Update dependency vega-lite to v4.16.8 ( #640 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:42:42 +02:00
renovate[bot]
98da6765cb
Update linters ( #641 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:41:58 +02:00
renovate[bot]
3e6b4379c2
Update dependency highlight.js to v10.2.1 ( #635 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:40:30 +02:00
renovate[bot]
a5323f0a30
Update dependency cypress to v5.3.0 ( #634 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:39:31 +02:00
renovate[bot]
6ec56a8bb9
Update dependency copy-webpack-plugin to v6.2.0 ( #633 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:37:56 +02:00
renovate[bot]
ddb8b20b05
Update dependency @testing-library/user-event to v12.1.7 ( #632 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:37:09 +02:00
renovate[bot]
e4ca86206a
Update dependency @craco/craco to v5.7.0 ( #631 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 10:35:36 +02:00
Philip Molares
20e296cb9b
replaces moment with luxon ( #621 )
2020-10-02 14:00:29 +02:00
mrdrogdrog
733df9b94a
replace allowedChars with not-whitespace ( #617 )
2020-09-30 23:58:31 +02:00
Philip Molares
1ab9b58031
Extract clean title from first heading ( #616 )
...
* removed first-header-extractor
get first heading from markdown rende
* don't remove editor or renderer just hide them
this way both are always up to date and can be shown very fast
* extracted image alt attribute into first title. too
* added tests as suggested by @mrdrogdrog
2020-09-30 23:50:32 +02:00
Tilman Vatteroth
192f66d169
Use right clear error
...
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
2020-09-30 23:38:36 +02:00
Erik Michelson
091b225672
Add caching of user-data ( #568 )
...
* Add caching of user-data for 600 seconds
* Make cache-entry interface commonly usable
* Extract revision types
* Remove revision-cache rule
* Use seconds as cache-time interval (Date.now uses milliseconds)
* Fix import error
* Extract cache logic into common cache-class
* Add cache class that was forgotten to commit in last commit
* Start adding unit tests
* Fix bug detected during unit-testing
* Add unit tests for cache
* Made entry-limit test more explicit
* Renamed files to lower-case starting letter
2020-09-30 23:37:57 +02:00
Erik Michelson
0f31c3b0b4
Autocompletion and toolbar button for collapsable blocks ( #615 )
...
* Add autocompletion for <details construct
* Add toolbar button for <details>-construct
* Added CHANGELOG notice
2020-09-30 23:35:10 +02:00
mrdrogdrog
2b6ba82b4b
Set wasmfolder ( #619 )
2020-09-30 23:22:17 +02:00