David Mehren
53cea4cb1d
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-25 21:37:39 +02:00
David Mehren
47bf8c9c17
NotesService: Use the database for delete and update actions.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
e43008c627
NotesController: Get text from request body when updating and deleting a note.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
99dccc0567
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-25 21:37:39 +02:00
David Mehren
1a22f749be
NotesController: Get text from request body when creating a named note.
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
9da1a88e74
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-25 21:37:39 +02:00
David Mehren
3436990ac6
Restructure test setup in Note E2E tests to not load the whole application
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
eb4278dd73
Update Note E2E tests to use new getNoteDtoByIdOrAlias
method
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
a2a9ad224f
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-25 21:37:39 +02:00
David Mehren
e97f9fe174
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-25 21:37:39 +02:00
David Mehren
74b03fc1fd
RevisionsService: Implement getLatestRevision
and createRevision
methods
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
fae8c679a9
UsersService: Add null
check to toUserDto()
converter
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
6805c2a41e
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-25 21:37:39 +02:00
David Mehren
e1e0e45434
UsersService: Add toUserDto()
converter
...
This conversion function makes sure that a photo URL exists.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:39 +02:00
David Mehren
f937042439
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-25 21:37:39 +02:00
David Mehren
f5e043b8b1
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-25 21:37:38 +02:00
David Mehren
5d07481387
RevisionEntity: Add create()
method
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:38 +02:00
David Mehren
2ab90917bc
NotesService: createNote()
now saves new notes to the database
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:38 +02:00
David Mehren
39410ab9c8
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-25 21:37:38 +02:00
David Mehren
8c050b3c2f
NoteEntity: Formatting fixes
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:38 +02:00
David Mehren
4ff60b162e
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-25 21:37:38 +02:00
David Mehren
2c3a75187e
NoteController: Do not use text/markdown as response content-type for createNote
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:38 +02:00
David Mehren
99f44f2551
Reverse cardinality of owner relationship
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:37:34 +02:00
David Mehren
b17da345c7
NoteDto: Rename attribute metdata
to metadata
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 21:35:47 +02:00
David Mehren
b4b91acddb
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-25 21:35:47 +02:00
David Mehren
1bd376e3a5
Merge pull request #480 from codimd/routes/notes/tests
2020-09-25 21:35:31 +02:00
David Mehren
4b0729cc9c
Add E2E tests for /notes route
...
Most tests already test the correct thing, but all obviously fail because nothing is implemented yet.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 20:46:36 +02:00
David Mehren
959e6e1645
Add Jest config for E2E tests
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-25 20:46:36 +02:00
David Mehren
1ea589196d
Merge pull request #481 from codimd/nestjs-ci
2020-09-25 20:46:01 +02:00
David Mehren
00fa4e7378
Merge pull request #488 from Eisfunke/patch-1
...
Update db schema UML layouting
2020-09-02 20:00:37 +02:00
Nicolas Lenz
110b9cb077
Update db schema layouting
...
Previously, single dashes were used for associatons, which makes PlantUML layout all of them in an horizontal line. I changed that to two dashes so that PlantUML uses normal layouting. I think that is far clearer.
(See https://plantuml.com/class-diagram for more on layouting)
Signed-off-by: Nicolas Lenz <nicolas@eisfunke.com>
2020-08-29 18:42:28 +02:00
David Mehren
f2de18179e
CI: Add Node 14 to node versions list
...
This also removes the explicit node version in the eslint stage. Now the first version from the global list is automatically used.
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-25 21:04:59 +02:00
David Mehren
196e7dfc58
Update Travis CI config for NestJS
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-21 22:13:35 +02:00
David Mehren
81126bb864
Do not automatically fix linting problems
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-21 21:45:53 +02:00
David Mehren
d55e3bb622
NotesController: Add missing mock repositories for testing
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-20 19:57:56 +02:00
David Mehren
35051986be
MeController: Add missing mock repositories for testing
...
Signed-off-by: David Mehren <git@herrmehren.de>
2020-08-20 19:57:47 +02:00
Yannick Bungers
91200cb3b3
Removed unnecessary objects and flattened updateTime
...
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-20 19:43:17 +02:00
Yannick Bungers
3f6fe71bab
Fixed Typos, removed unnecessary type: object
...
and fixed copy paste errors in descriptions
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-20 19:43:17 +02:00
Yannick Bungers
7f00c87c68
Added GET /me/history/{note} to get data for updating history
...
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-20 19:43:16 +02:00
David Mehren
2398499f5d
Rename openapi.yml to public_api.yml
2020-08-20 19:43:16 +02:00
Yannick Bungers
0ec8d61669
Added serverVersion to status by using SemVer
...
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-20 19:43:16 +02:00
Erik Michelson
71158f93dc
Reorganized openapi.yml for external API structure
...
As this document should contain the details of the stable external API, it was refactored and cleaned up.
Co-Authored-By: David Mehren <dmehren1@gmail.com>
Co-Authored-By: Yannick Bungers <git@innay.de>
Co-Authored-By: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:16 +02:00
Erik Michelson
7d20e97348
Added entries for image proxying and registering
...
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2020-08-20 19:43:16 +02:00
Philip Molares
74421e7264
server tag is now called backend
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:16 +02:00
Philip Molares
8f0761af96
/me is now a put and not a post since it's an update method
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:16 +02:00
Philip Molares
4d424842e6
fixed typo
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:15 +02:00
Philip Molares
7dbadd2d0b
descriptions always end with a dot
...
summaries never end with a dot
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:15 +02:00
Philip Molares
4c11b81dfb
the api doc is now referring to the backend as such and not as system und CodiMD instance
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:15 +02:00
Philip Molares
3561da0457
/config is now tagged as server to
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:15 +02:00
Philip Molares
3cb60fbc11
moved the /history endpoints to /me/history
...
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-08-20 19:43:15 +02:00