David Mehren
a61127dbd6
Note E2E tests: Use response.body
to get the note content
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:46:32 +02:00
David Mehren
3c711e8cb8
Note E2E tests: Use the correct revision-id when checking GET /notes/{note}/revisions/{revision-id}
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:45:56 +02:00
David Mehren
4cf31c1bcb
NotesService: Implement getNoteContent
and getNoteMetdata
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:45:20 +02:00
David Mehren
bc1c8448df
NotesService: Let createNote
create an actual Note
and introduce createNoteDto
to create & convert in one step.
...
It might be handy to have access to the original `Note` after creating one, so the creation and conversion to a `NoteDto` is now split.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:44:53 +02:00
David Mehren
446d6dec06
RevisionsService: Get note revision from database
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:42:17 +02:00
David Mehren
4649b6e796
Note E2E tests: The response for the /notes/<id>/revision route does not contain a revisions
property
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:11:56 +02:00
David Mehren
711358ec0c
Note E2E tests: Await all note-creations and fix test for note-deletion.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:10:09 +02:00
David Mehren
05a62b31ee
RevisionService: Implement getNoteRevisionMetadatas
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:09:14 +02:00
David Mehren
3d4e9a9b92
NotesController: revisionId
is a number
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:08:14 +02:00
David Mehren
706f3a2360
Public API spec: Update NoteRevisionsMetadata and timestamp definition
...
NoteRevisionsMetadata is an array containing revision data and not an object with a single property containing an array.
Revision timestamps are ISO strings, not UNIX timestamps.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:07:41 +02:00
David Mehren
2140faab07
RevisionMetadataDto: Rename attribute updatedAt
to createdAt
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 21:04:55 +02:00
David Mehren
2030141c66
Note E2E tests: Use on-disk sqlite to aid debugging
...
It was helpful to inspect database contents while the code was stopped by the debugger. Therefore the E2E test database is now persisted on disk and cleared before every test-run.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 20:09:36 +02:00
David Mehren
cf88cde551
NotesService: Use the database for delete and update actions.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 20:07:36 +02:00
David Mehren
05f25b92aa
NotesController: Get text from request body when updating and deleting a note.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 20:06:56 +02:00
David Mehren
d462a571d8
RevisionEntity: Change primary key type from UUID to number
...
The precision of sqlites datetime() timestamp is only one second (see https://www.sqlite.org/lang_datefunc.html ). Therefore we could not order revisions of one note that were created in the same second. To remedy this, the primary key was changed to a monotonically increasing number, which solves the ordering problem.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 20:06:16 +02:00
David Mehren
1abb472621
NotesController: Get text from request body when creating a named note.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 18:31:20 +02:00
David Mehren
cccd52d1b0
Note E2E tests: Set a non-JSON content-type to avoid Nest trying to parse markdown to JSON.
...
Nest automatically tries to parse incoming requests with application/json as content-type and responds with HTTP 400 if the parsing fails. As our test-note-content is not valid JSON, we need to set another content-type.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 18:30:22 +02:00
David Mehren
c43448624b
Restructure test setup in Note E2E tests to not load the whole application
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 18:27:35 +02:00
David Mehren
8145fc48d1
Update Note E2E tests to use new getNoteDtoByIdOrAlias
method
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 17:53:17 +02:00
David Mehren
5d1cc6c339
NotesService: Find note by ID or alias in database
...
This commit also introduces the `getNoteDtoByIdOrAlias` method, that converts a `Note` entity to a `NoteDto`
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 17:34:33 +02:00
David Mehren
21f4cda27c
NoteEntity: Lazy-load revisions
relation
...
Using a `Promise` type in a TypeORM entity automatically enables lazy-loading of that relation.
See https://typeorm.io/#/eager-and-lazy-relations/lazy-relations
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 17:32:35 +02:00
David Mehren
b1cb8025a5
RevisionsService: Implement getLatestRevision
and createRevision
methods
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 17:29:59 +02:00
David Mehren
615bd6496b
UsersService: Add null
check to toUserDto()
converter
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-22 17:28:57 +02:00
Erik Michelson
23972ffb16
Add webpack-bundle-analyzer as dev-tool ( #591 )
...
* Add webpack-bundle-analyzer as dev-tool
* Add README information about bundle analysis
2020-09-20 23:22:37 +02:00
mrdrogdrog
985abe230e
Remove unused prop ( #589 )
...
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
2020-09-20 22:55:31 +02:00
mrdrogdrog
cece089a54
fix badges in readme ( #588 )
2020-09-20 16:28:54 +02:00
renovate[bot]
0cebb29ec6
Pin dependencies ( #587 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-19 22:28:25 +02:00
Philip Molares
8e8190b800
Add copy-to-clipboard-button to all code blocks ( #566 )
...
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
Co-authored-by: mrdrogdrog <mr.drogdrog@gmail.com>
Co-authored-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
2020-09-19 22:24:49 +02:00
Philip Molares
005c80ff55
added markmap support to the markdown-renderer ( #572 )
...
Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
Co-authored-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
2020-09-19 20:34:44 +02:00
renovate[bot]
204f2deb5a
Pin dependencies ( #585 )
...
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-19 20:15:33 +02:00
Philip Molares
cac9b7ea37
Expand image button ( #570 )
...
added full-screen image modal when clicking on img's
Co-authored-by: Erik Michelson <github@erik.michelson.eu>
2020-09-19 20:12:57 +02:00
Philip Molares
553cd3577d
add vega-lite diagram ( #574 )
...
added vega-lite diagrams
Update CHANGELOG.md
Co-authored-by: mrdrogdrog <mr.drogdrog@gmail.com>
2020-09-19 19:34:24 +02:00
David Mehren
9cae7e34dc
NotesService: Get more note metadata from the database
...
Some previously hardcoded metadata-values are now retrieved from the database.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 17:40:50 +02:00
David Mehren
30a0b25094
UsersService: Add toUserDto()
converter
...
This conversion function makes sure that a photo URL exists.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 17:33:29 +02:00
David Mehren
eee8668317
NoteUtils: Add methods to parse note metadata
...
These methods are intended to parse metadata details from YAML tags, but not implemented for now.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 17:32:08 +02:00
David Mehren
243fcabcaf
NoteEntity: Always initialize arrays
...
The `create()` function did not initialize all arrays, which caused them to be `undefined` instead of empty.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 17:30:58 +02:00
David Mehren
58e2932c1a
RevisionEntity: Add create()
method
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 16:04:30 +02:00
David Mehren
32a6396a50
NotesService: createNote()
now saves new notes to the database
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 16:01:32 +02:00
David Mehren
2261b81139
NoteEntity: Move constructor-code to create() method
...
TypeORM does not like having application code in the constructor (https://github.com/typeorm/typeorm/issues/1772#issuecomment-514787854 ), therefore that is moved into a new `create() static method. Additionally, the constructor is now `private`, which enforces the use of the new method.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 16:00:29 +02:00
David Mehren
bb9e60d5f6
NoteEntity: Formatting fixes
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 15:57:57 +02:00
David Mehren
85fa30b27c
NoteEntity: Enable CASCADE for revision column
...
This makes creating new Notes easier, as the first Revision is automatically created in the database.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 15:57:34 +02:00
David Mehren
56817c3f91
NoteController: Do not use text/markdown as response content-type for createNote
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 15:50:58 +02:00
David Mehren
b174c0b0ab
Reverse cardinality of owner relationship
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 15:48:00 +02:00
David Mehren
c6787ef233
NoteDto: Rename attribute metdata
to metadata
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 14:54:08 +02:00
David Mehren
93cf9c2c56
NotesController: Use custom logic to access raw markdown
...
NestJS does not support content-types other than application/json.
Therefore we need to directly access the request object to get the raw body content.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 14:51:12 +02:00
Renovate Bot
0f6ea38140
Update dependency copy-webpack-plugin to v6.1.1
2020-09-19 12:25:29 +02:00
Renovate Bot
70eddded41
Update dependency ts-loader to v8.0.4
2020-09-19 12:12:03 +02:00
Renovate Bot
061193afd1
Update dependency typescript to v4.0.3
2020-09-19 12:11:33 +02:00
Renovate Bot
8ff35058c8
Update dependency moment to v2.28.0
2020-09-19 12:10:02 +02:00
Renovate Bot
b92e0f6f5f
Update dependency markdown-it to v11.0.1
2020-09-19 12:09:30 +02:00