Commit graph

63 commits

Author SHA1 Message Date
David Mehren
566e95f95d
Add note metadata to db schema
Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 11:02:03 +02:00
David Mehren
e30b16d91d
Public API: Cleanup history schemas
Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-24 19:39:34 +02:00
David Mehren
d43bca69b8
Public API: NoteRevisionsMetadata is not an array
Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-24 19:39:05 +02:00
David Mehren
2302667787
Public API: Remove PUT /notes/{note}/metadata
The note metadata will be automatically extracted from the note content and cannot be updated separately.

Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-24 19:25:15 +02:00
David Mehren
c685bd8e50
Public API: Fix PUT /notes/{note}/permissions response
This route should return a full `NotePermissions` object instead of only `NotePermissionsUpdate`

Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 18:08:31 +02:00
David Mehren
cae430f25f
Public API: Update description of /notes/{note} POST and PUT routes.
Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 14:51:22 +02:00
David Mehren
fe5f9bc9c3
Public API: Successful POST requests should result in a 201.
Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 14:40:51 +02:00
David Mehren
ee0d85bc85
Public API: Simplify PUT /me/history/{note}
Previously, one had to send a complete `NoteMetadata` object when updating the pinned status of a note. A new `HistoryUpdateObject` type was introduced, that only contains the pinned status boolean.

Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 12:49:50 +02:00
David Mehren
2c9ccad8e5
Public API: Split-out a /notes/{note}/permissions route to set only permissions
Previously, the metadata route was used to both update note metadata (like title, description and tags) and the permissions. Additionally, one had to send many unchangeable properties. In this commit, a /notes/{note}/permissions route is introduced, that only changes permissions. Additionally, PUT /notes/{note}/metadata now needs only the properties that are actually changeable.

Signed-off-by: David Mehren <git@herrmehren.de>
Co-authored-by: Yannick Bungers <git@innay.de>
2020-10-03 12:46:28 +02:00
David Mehren
7563eb703d
Public API: Add routes to get uploads by user or note
Co-authored-by: Yannick Bungers <git@innay.de>
Signed-off-by: David Mehren <git@herrmehren.de>
2020-10-24 21:48:29 +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
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
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
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
Yannick Bungers
743eb7469d
Fixes types of timestamps and property name
Signed-off-by: Yannick Bungers <git@innay.de>
2020-10-01 12:22:52 +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
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
b174c0b0ab
Reverse cardinality of owner relationship
Signed-off-by: David Mehren <git@herrmehren.de>
2020-09-19 15:48:00 +02:00
Nicolas Lenz
6225215c6e
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:37:53 +02:00
Yannick Bungers
e2eac5e042
Removed unnecessary objects and flattened updateTime
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-17 23:16:08 +02:00
Yannick Bungers
fb29ab85bd
Fixed Typos, removed unnecessary type: object
and fixed copy paste errors in descriptions

Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-17 23:14:38 +02:00
Yannick Bungers
ea82479050
Added GET /me/history/{note} to get data for updating history
Signed-off-by: Yannick Bungers <git@innay.de>
2020-08-17 23:09:06 +02:00
David Mehren
ee3837c7e5
Rename openapi.yml to public_api.yml 2020-07-21 20:40:49 +02:00
Yannick Bungers
f1dddb8a41
Added serverVersion to status by using SemVer
Signed-off-by: Yannick Bungers <git@innay.de>
2020-06-09 21:42:43 +02:00
Erik Michelson
b5a99b585c
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-07-16 01:22:50 +02:00
Erik Michelson
3969ef3259
Added entries for image proxying and registering
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2020-07-10 02:29:44 +02:00
Philip Molares
7064b8c66d
server tag is now called backend
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 23:33:54 +02:00
Philip Molares
3fd0ba2c47
/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-06-06 23:33:09 +02:00
Philip Molares
5c796fb94c
fixed typo
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 23:31:05 +02:00
Philip Molares
1dd148cd0a
descriptions always end with a dot
summaries never end with a dot

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 23:26:48 +02:00
Philip Molares
a4e2596107
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-06-06 22:54:02 +02:00
Philip Molares
f98fffa888
/config is now tagged as server to
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 22:51:39 +02:00
Philip Molares
10020ede69
moved the /history endpoints to /me/history
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 22:51:13 +02:00
Philip Molares
bbc6b45735
user is now always explicitly currently logged-in user
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 22:00:17 +02:00
Philip Molares
a7356ce93e
base name now is /api/v2/
this change makes sense, because v2 client should still be able to call /api/v2/ on v2.1 servers

Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:51:57 +02:00
Philip Molares
09ee8293cd
fixed typo
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:46:43 +02:00
Philip Molares
dc661ad768
removed trailing / on /history/{note}
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:46:18 +02:00
Philip Molares
e088741578
renamed revision to revisions
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:45:27 +02:00
Philip Molares
1461b7ad62
removed /notes/{note}/websocket
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:44:15 +02:00
Philip Molares
fda6cf2e06
added export tag to /me/export
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-06-06 21:43:06 +02:00
Erik Michelson
fc8f5dbbf5
Removed tokens from API spec
With the suggested usage of an Authorization header instead of relying on session-cookies, the API will finally become stateless. Therefore we don't need the tokens for user password change and deletion anymore.

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2020-06-02 00:04:24 +02:00
Erik Michelson
ab251b429e
Added missing endpoint for updating user information
Signed-off-By: Erik Michelson <github@erik.michelson.eu>
2020-05-31 02:22:00 +02:00
Erik Michelson
37b774223f
Added endpoints required for the user profile page
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
2020-05-29 17:27:52 +02:00
Philip Molares
5bf64c735f
added version to /config
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-05-28 22:19:33 +02:00
Philip Molares
b8ccc800ad
response codes are strings now
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2020-05-28 22:19:15 +02:00
Philip Molares
83e8331b3e
added /history/{note} 2020-05-27 16:50:56 +02:00
Philip Molares
8d3a89d73f
added /config 2020-05-27 14:58:49 +02:00
Philip Molares
0522b9100e
added /history 2020-05-27 14:34:25 +02:00