- Aug 29, 2017
-
-
Daniel Gerhardt authored
Refactor architecture layers See merge request !71
-
- Aug 28, 2017
-
-
Daniel Gerhardt authored
* skillquestions -> contentlists * lecturequestions -> lecturecontentlists * preparationquestions -> preparationcontentlists * flashcardquestions -> flashcardcontentlists * questions -> contents * answers -> answerlists * learningprogress -> score
-
Daniel Gerhardt authored
With the use of JSON views they are no longer necessary.
-
Daniel Gerhardt authored
Unfortunately, Spring Security cannot easily be used with our WebSocket implementation since connections share a Thread and therefore share a SecurityContext. An AuthenticationToken for WebSocket access to the service layer is created.
-
Daniel Gerhardt authored
* Remove redundant `isAuthenticated()` checks * Move in-method checks to annotations where possible
-
Daniel Gerhardt authored
It is no longer necessary since the creator property is not serialized for the API.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Moved logic operating on multiple repositories to service layer.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Implemented a patch method which merges an existing entity with updated properties from a HashMap. A new test dependency spring-security-test has been added.
-
Daniel Gerhardt authored
* Use consistent permission for all target domain objects: * read, create, owner, update, delete * Use switch blocks to improve readability * Fetch target domain objects early to reduce code duplication
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Repositories now implement Spring Data interfaces. Basic CouchDB operations are now implemented once by `CouchDbCrudRepository` instead of having redundant methods to handle each design document.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
* Prefer ids over "foreign" domain objects. * Consistently use final keyword for implementation parameters and variables. * As a consequence, session id is used instead of the object as cache key for `skillquestions`, `lecturequestions`, `preparationquestions` and`flashcardquestions` caches. * Rename occurances of `questionId` to `contentId`.
-
Daniel Gerhardt authored
Added new service for comments.
-
Daniel Gerhardt authored
* Moved classes from `de.thm.arsnova` root package. * New util package * Do not start interface names with `I`. Appended `Impl` to the implementing class instead. * Renamed learning progress classes to score and move them from `.domain` to a new `.services.score` package. * Do not capitalize acronyms in class names: * CASLogoutSuccessHandler -> CasLogoutSuccessHandler * SocketIO* -> Socketio* * Renamed `.socket` package to `.websocket`
-
- Aug 17, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Our version of CouchDB4J has been updated to fix and improve type handling for database keys. Strings are no longer converted implicitly to integers or booleans based on their content. This lead to bugs if key and property values were compared.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jul 17, 2017
-
-
Daniel Gerhardt authored
Fix registration of Bean for socket event handling See merge request !70
-
Daniel Gerhardt authored
Fixes a regression introduced by commit 2ecbfec8.
-
Daniel Gerhardt authored
Fix design doc creation See merge request !69
-
Daniel Gerhardt authored
Authentication is needed if an CouchDB admin user exists for design doc creation at startup. Closes GH-6.
-
- Jul 16, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jul 15, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Migration to Ektorp and refactoring of the database layer A summary of the changes: * CouchDB4J has been replaced by Ektorp. * CouchDBDao has been split up into multiple repositories: One for each entity. * Jackson is used instead of JSON-lib for POJO <-> JSON (de)serialization. * Jackson's `@JsonView`'s are used to mark which properties are (de)serialized for the API and/or CouchDB * A lot of persistence code could be simplified since serialization is handled automatically by the `ObjectMapper`. * Entities and related Classes have been renamed: * `Content` <- `Question` / `SkillQuestion` / `LecturerQuestion` * `Comment` <- `FeedbackQuestion` / `AudienceQuestion` * CouchDB design docs can now be automatically created by the backend if necessary. They are included as JavaScript code which is parsed and transformed to JSON at startup using Java's `ScriptEngine`. * `MediaType`s for API versioning have been introduced: * `vnd.de.thm.arsnova.v2+json`: the format as used in ARSnova 2.x * `vnd.de.thm.arsnova.v3+json`: * ISO 8601 dates instead of timestamps * `id` instead of `_id`, `revision` instead of `_rev` * `api.indent-response-body` can be set in configuration for pretty responses for API debugging. * Empty (e.g. `null`) entity properties are ignored for serialization See merge request !68
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-