Skip to content
Snippets Groups Projects
  1. Jul 02, 2017
  2. Jun 22, 2017
  3. May 24, 2017
  4. May 08, 2017
  5. May 07, 2017
  6. May 03, 2017
  7. May 02, 2017
  8. May 01, 2017
    • Daniel Gerhardt's avatar
      Remove mime mapping container config · c46b2411
      Daniel Gerhardt authored
      There should not be any Servlet container around which does not support
      JSON by default. The backend does not have an AppCache manifest so a
      mapping is not needed here either.
      c46b2411
    • Daniel Gerhardt's avatar
      Remove HTML error pages · 038e6128
      Daniel Gerhardt authored
      Since error handlers use JSON for responses there is no need for HTML
      error pages anymore.
      038e6128
    • Daniel Gerhardt's avatar
      Add multi-version API support via media types · 0d93fe41
      Daniel Gerhardt authored
      API v3:
      * Media type: application/vnd.de.thm.arsnova.v3+json
      * Serializes date as strings conforming to ISO 8601.
      
      API v2:
      * Media type: application/vnd.de.thm.arsnova.v2+json
      * Serializes dates as timestamps including nanoseconds.
      
      An indentation setting has been added: `api.indent-response-body:false`.
      0d93fe41
  9. Apr 30, 2017
  10. Apr 26, 2017
  11. Apr 25, 2017
  12. Apr 21, 2017
  13. Apr 17, 2017
  14. Apr 16, 2017
    • Daniel Gerhardt's avatar
      Use new user views · 2f25c97b
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * user/
          - user/by_creation_for_inactive: (activationKey) creation => _rev
              * user/inactive_by_creation: (activationKey) creation => _rev
          - doc_by_username: username => doc
              * user/all: username => doc
      2f25c97b
    • Daniel Gerhardt's avatar
      Use new comment views · 3103bbf1
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * comment/
          - by_sessionid: sessionId => _rev
              * interposed_question/count_by_session: sessionId => doc
          - by_sessionid_creator_read: sessionId, creator, read => _rev
              * interposed_question/count_by_session_reading_for_creator, sessionId, creator, 'read' | 'unread' => doc
          - by_sessionid_read: sessionId, read => _rev
              * interposed_question/count_by_session_reading: sessionId, 'read' | 'unread' => doc
          - doc_by_sessionid_creator_timestamp: sessionId, creator, timestamp => doc
              * interposed_question/by_session_and_creator: sessionId, creator, timestamp => doc
          - doc_by_sessionid_timestamp: sessionId, timestamp => doc
              * interposed_question/by_session_full: sessionId, timestamp => doc
              * interposed_question/by_session: sessionId => subject, timestamp, _rev, read, creator
      3103bbf1
    • Daniel Gerhardt's avatar
      Use new answer views · d2359fe8
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * answer/
          - by_questionid: questionId => _rev
              * answer/cleanup: questionId => _id
          - by_questionid_piround_text_subject: questionId, piRound, abstention, answerText, answerSubject, successfulFreeTextAnswer => _rev
              * skill_question/count_all_answers_by_question: questionId, answerText, answerSubject, successfulFreeTextAnswer => 1
              * skill_question/count_answers_by_question_and_piround: questionId, piRount, answerText => 1
              * skill_question/count_abstention_answers_by_question: (abstention) questionId => doc
              * skill_question/count_total_answers_by_question: questionId => doc
              * skill_question/count_total_answers_by_question_and_piround: questionId, piRount => 1
          - by_sessionid: sessionId => _rev
              * skill_question/count_answers_by_session: sessionId => doc
          - by_sessionid_variant: sessionId, variant => _rev
              * skill_question/count_answers_by_session_and_question_variant: sessionId, questionVariant => doc
          - by_user_sessionid: user, sessionId => _rev
              * answer/by_user: user, sessionId => questionId
          - doc_by_questionid_timestamp: questionId, timestamp => doc
              * skill_question/freetext_answers_full: questionId, timestamp => doc
          - doc_by_questionid_user_piround: questionId, user, piRound => doc
              * answer/by_question_and_user_and_piround: questionId, user, piRound => doc
          - doc_by_user_sessionid: user, sessionId => doc
              * answer/by_user_and_session_full: user, sessionId => doc
          - questionid_by_user_sessionid_variant: user, sessionId, questionVariant => questionId
              * answer/by_user: user, sessionId => questionId
              * answer/variant_by_user: user, sessionId, questionVariant => questionId
          - questionid_piround_by_user_sessionid_variant: user, sessionId, questionVariant => questionId, piRound
              * answer/variant_by_user_and_piround: user, sessionId, questionVariant => questionId, piRound
      d2359fe8
    • Daniel Gerhardt's avatar
      Use new content views · c035acad
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * content/
          - by_sessionid: sessionId => _rev
              * skill_question/count_by_session: sessionId => doc
          - by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => _rev
              * skill_question/by_session_only_id_for_all: (active == 1) sessionId => null
              * skill_question/flashcard_count_by_session: (questionVariant == "flashcard") sessionId => doc
              * skill_question/lecture_question_count_by_session: (questionVariant == 'lecture') sessionId => doc
              * skill_question/lecture_question_ids_by_session_and_subject: (questionVariant == 'lecture') sessionId, subject => _id
              * skill_question/lecture_question_ids_by_session_for_all: (questionVariant == "flashcard" && active == 1) doc.sessionId, doc.subject, doc.text => {}
              * skill_question/lecture_question_subjects_by_session: (questionVariant == 'lecture') sessionId => subject
              * skill_question/preparation_question_count_by_session: (questionVariant == 'preparation') sessionId => doc
              * skill_question/preparation_question_ids_by_session_and_subject: (questionVariant == 'preparation') sessionId, subject => _id
              * skill_question/preparation_question_ids_by_session_for_all: (questionVariant == 'preparation' && active == 1) sessionId, subject, text => {}
              * skill_question/preparation_question_subjects_by_session (questionVariant == "preparation") sessionId => subject
          - doc_by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => doc
              * skill_question/by_session: sessionId, subject => doc
              * skill_question/by_session_for_all_full: (active == 1) sessionId, subject, text => doc
              * skill_question/by_session_sorted_by_subject_and_text: sessionID, subject, text => doc
              * skill_question/flashcard_by_session: (questionVariant == 'flashcard') sessionId, subject, text => doc
              * skill_question/flashcard_by_session_for_all: (questionVariant == "flashcard" && active == 1) sessionId, subject, text => doc
              * skill_question/lecture_question_by_session: (questionVariant == 'lecture') sessionId, subject, text => doc
              * skill_question/lecture_question_by_session_for_all: (questionVariant == 'lecture' && active == 1) sessionId, subject, text => doc
              * skill_question/preparation_question_by_session: (questionVariant == 'preparation') sessionId, subject, text => doc
              * skill_question/preparation_question_by_session_for_all: (questionVariant == 'preparation' && doc.active == 1) sessionId, subject, text => doc
      
      The following views have been removed:
      * skill_question/questions_by_ids: _id => doc (use all_docs)
      c035acad
    • Daniel Gerhardt's avatar
      Use new MotD views · f565df90
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * motd/
          - by_motdkey: motdkey => _rev
              * motd/by_keyword: motdkey => doc
          - doc_by_audience_for_global: (audience != 'session') audience => doc
              * motd/admin: (audience != 'session') 1 => doc
              * motd/for_tutors: (audience == 'tutors' || audience == 'loggedIn') 1 => doc
                  - 2 backend requests
              * motd/for_all: (audience == 'all') 1 => doc
              * motd/for_loggedin: (audience == 'loggedIn') 1 => doc
              * motd/for_students: (audience == 'students' || audience == 'loggedIn') 1 => doc
                  - 2 backend requests
          - doc_by_sessionkey: (audience == 'session') sessionkey => doc
              * motd/by_sessionkey: (audience == 'session') sessionkey => doc
      * motdlist/
          - doc_by_username: username => doc
              * motd/list_by_username: username => doc
      
      The following views have been removed:
      * motd/all: 1 => doc (never used)
      f565df90
    • Daniel Gerhardt's avatar
      Use new session views · 419fef2b
      Daniel Gerhardt authored
      The following replacements have been made:
      * New design document name
          - New view name: (conditions) keys => values
              * Full old view name: (conditions) keys => values
      
      * session/
          - by_courseid: (courseId && sessionType != 'public_pool') courseId => _rev (include_docs)
              * session/by_courseid: (courseId && sessionType != 'public_pool') courseId => doc
          - by_keyword: keyword => _rev (include_docs)
              * session/by_keyword => doc
          - by_lastactivity_for_guests: (sessionType != 'public_pool' && creator.indexOf('Guest') == 0) lastOwnerActivity || creationTime => _rev
              * session/by_last_activity_for_guests: (sessionType != 'public_pool' && creator.indexOf('Guest') == 0) lastOwnerActivity || creationTime => _rev
          - partial_by_ppsubject_name_for_publicpool: (sessionType == 'public_pool') ppSubject, name => partial doc
              * session/public_pool_by_subject: (sessionType == 'public_pool') ppSubject, name => partial doc
          - partial_by_sessiontype_crea...
      419fef2b
  15. Apr 11, 2017
    • Daniel Gerhardt's avatar
      Fix session import · c31cd727
      Daniel Gerhardt authored
      Readd an empty constructor for deserialization with Jackson. It was
      accidentally removed a part of a code clean up in commit
      685695a6.
      c31cd727
  16. Mar 28, 2017
  17. Mar 27, 2017