- Jun 25, 2015
-
-
Daniel Gerhardt authored
-
- Jun 24, 2015
-
-
Daniel Gerhardt authored
This prevents DoS attacks caused by request loops.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Renamed optional.arsnova to ui.arsnova-slogan and made comments start with an uppercase letter.
-
Daniel Gerhardt authored
-
- Jun 17, 2015
-
-
Daniel Gerhardt authored
WE Offshore Sprint: Session Info Feature We had the task to implement a Session-Info Form, where the speaker could add more information to a session, which is already created or to add more information to a session which is created at that moment. Therefore we needed to use the update Method and change some code in the backend as well: 1. Changed **updateSession** Method in SessionService * First: we get the session that should be updated from the DB with the getSessionFromKeyword-Method * Second: we update the values of the session with the new values that were entered * Third: we check the logo just like in the saving Method of a session * we return the updated session 2. Changed **getSessionFromKeyword** Method in CouchDBDao * We added these fields, so that they are also fetched: * ppAuthorName * ppAuthorMail * ppUniversity * ppLogo * ppSubject * ppLicense * ppDescription * ppFaculty * ppLevel See merge request !7
-
- Jun 12, 2015
-
-
Christoph Thelen authored
-
- Jun 10, 2015
-
-
Katharina Staden authored
-
Katharina Staden authored
refactored handling of logo during the saving of a new session and the update of an existing session out into a new method handleLogo
-
- Jun 09, 2015
-
-
Katharina Staden authored
-
Daniel Gerhardt authored
-
- Jun 08, 2015
-
-
Katharina Staden authored
-
Katharina Staden authored
Retrieved @Cacheable and changed updateSession method in SessionService, now getting the session by keyword and set all fields that may have changed to a new value
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jun 06, 2015
-
-
Katharina Staden authored
Removed @Chacheable from getSession function, because the Update of a session wont work if only the cache is used for loading the content of a session
-
Katharina Staden authored
-
- Jun 03, 2015
-
-
Daniel Gerhardt authored
This merge introduces pagination for lists of sessions (user specific: owned and visited), interposed questions and free text answers and skill questions. While the first three are paginated through the database, skill questions are paginated in memory so caching is still possible. Frontend usage To enable pagination, new HTTP headers based on RFC 7233 have been introduced: Request: Range: items=<start>-<end>, e.g. Range: items=0-9 Response: Content-Range: items <start>-<end>/<total>, e.g. Content-Range: items 0-9/42 Since it is not possible to determine the total count of items via CouchDB w/o performance losses, it is currently only set accurately for skill questions. In other cases total is set to -1. Backend usage Pagination support can be added to controllers by extending the newly introduced PaginationController. Additionally, applicable methods have to be marked with the @Pagination annotation so the Range header is parsed and the Content-Range header is set for responses. Pagination parameters are accessible in the controller through the offset and limit fields. If pagination on the DBAL is not possible, lists can be wrapped with PaginationListDecorator<T> to enable in memory pagination. See merge request !3
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Andreas Gärtner authored
-
Daniel Gerhardt authored
Requesting partial lists would interfere with Spring caching so pagination is handled by the newly introduced PaginationListDecorator in the controllers. This additionally allows to determine the total count of items (independent from pagination parameters) which is not possible with CouchDB.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jun 01, 2015
-
-
Christoph Thelen authored
-
Christoph Thelen authored
-
- May 28, 2015
-
-
Christoph Thelen authored
-
- May 27, 2015
-
-
Christoph Thelen authored
-
Christoph Thelen authored
-
Andreas Gärtner authored
The mentioned method is also changed to only retrieve http header informations instead of whole URI content.
-
- May 26, 2015
-
-
Christoph Thelen authored
Caching fixes This PR fixes some caching bugs: * Cached methods have been called locally inside of `CouchDBDao`. The caching proxy was bypassed in these cases. All public methods (even those not involved in caching) are now called on the proxy instance. The here provided implementation is not optimal since it goes against SoC but can serve as a temporary fix. A better solution might involve AspectJ's weaving. * A wrong key for cache eviction has been used for `NewAnswerEvent` in `CacheBuster`. See merge request !2
-
Christoph Thelen authored
CacheEvict optimization Currently, in a lot of places the whole cache is cleared when only a single entry changes. Even completely unrelated caches are sometimes unnecessarily cleared. This PR adds `key` and `condition` elements to the annotations and replaces the `allEntries` element where possible. There is still room for additional optimizations but these require some refactoring. For now, the related code locations have been commented on to keep track of them. The last commit of this PR might be obsoleted later by [GH16](https://github.com/thm-projects/arsnova-backend/pull/16). But for now it should massively increase the effectiveness of answer statistics caching. See merge request !1
-
- May 25, 2015
-
-
Daniel Gerhardt authored
Added TODOs to keep track of methods still evicting the whole answers cache for future improvements. Additional refactoring is necessary to implement these.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-