Procházet zdrojové kódy

feat!: Access files dynamically

Sean Blackburn před 1 rokem
rodič
revize
e15a52ad62
45 změnil soubory, kde provedl 132 přidání a 109 odebrání
  1. 1 0
      src/components/examples/404.yaml
  2. 0 0
      src/components/examples/api/lecturers.yaml
  3. 0 0
      src/components/examples/api/module-history.yaml
  4. 0 0
      src/components/examples/api/modules.yaml
  5. 0 0
      src/components/examples/api/semester-versions.yaml
  6. 0 0
      src/components/examples/api/{semester}/changes.yaml
  7. 0 0
      src/components/examples/api/{semester}/{version}/classes.yaml
  8. 0 0
      src/components/examples/api/{semester}/{version}/config.yaml
  9. 7 0
      src/components/responses/404.yaml
  10. 2 2
      src/components/responses/api/lecturers-200.yaml
  11. 7 0
      src/components/responses/api/module-history-200.yaml
  12. 2 2
      src/components/responses/api/modules-200.yaml
  13. 9 0
      src/components/responses/api/semester-versions-200.yaml
  14. 9 0
      src/components/responses/api/{semester}/changes-200.yaml
  15. 9 0
      src/components/responses/api/{semester}/{version}/classes-200.yaml
  16. 7 0
      src/components/responses/api/{semester}/{version}/semester-version-config-200.yaml
  17. 0 0
      src/components/responses/assets/changelog-html-200.yaml
  18. 1 1
      src/components/responses/assets/{semester}/{version}/file-200.yaml
  19. 0 7
      src/components/responses/module-history-200.yaml
  20. 0 9
      src/components/responses/semester-versions-200.yaml
  21. 0 9
      src/components/responses/{semester}/changes-200.yaml
  22. 0 9
      src/components/responses/{semester}/{version}/classes-200.yaml
  23. 0 7
      src/components/responses/{semester}/{version}/semester-version-config-200.yaml
  24. 0 0
      src/components/schemas/api/lecturer.yaml
  25. 0 0
      src/components/schemas/api/module-dependency.yaml
  26. 2 2
      src/components/schemas/api/module-history.yaml
  27. 1 1
      src/components/schemas/api/module.yaml
  28. 0 0
      src/components/schemas/api/semester-version.yaml
  29. 0 0
      src/components/schemas/api/{semester}/change.yaml
  30. 3 3
      src/components/schemas/api/{semester}/{version}/class.yaml
  31. 0 0
      src/components/schemas/api/{semester}/{version}/semester-version-config.yaml
  32. 6 0
      src/components/schemas/error.yaml
  33. 10 10
      src/openapi.yaml
  34. 1 1
      src/paths/api/lecturers.yaml
  35. 1 1
      src/paths/api/module-history.yaml
  36. 1 1
      src/paths/api/modules.yaml
  37. 1 1
      src/paths/api/semester-versions.yaml
  38. 2 2
      src/paths/api/{semester}/changes.yaml
  39. 13 0
      src/paths/api/{semester}/{version}/classes.yaml
  40. 13 0
      src/paths/api/{semester}/{version}/config.yaml
  41. 2 2
      src/paths/assets/changelog-html.yaml
  42. 22 0
      src/paths/assets/{semester}/{version}/file.yaml
  43. 0 13
      src/paths/{semester}/{version}/classes.yaml
  44. 0 13
      src/paths/{semester}/{version}/config.yaml
  45. 0 13
      src/paths/{semester}/{version}/klassen-pdf.yaml

+ 1 - 0
src/components/examples/404.yaml

@@ -0,0 +1 @@
+error: The file was not found

+ 0 - 0
src/components/examples/lecturers.yaml → src/components/examples/api/lecturers.yaml


+ 0 - 0
src/components/examples/module-history.yaml → src/components/examples/api/module-history.yaml


+ 0 - 0
src/components/examples/modules.yaml → src/components/examples/api/modules.yaml


+ 0 - 0
src/components/examples/semester-versions.yaml → src/components/examples/api/semester-versions.yaml


+ 0 - 0
src/components/examples/{semester}/changes.yaml → src/components/examples/api/{semester}/changes.yaml


+ 0 - 0
src/components/examples/{semester}/{version}/classes.yaml → src/components/examples/api/{semester}/{version}/classes.yaml


+ 0 - 0
src/components/examples/{semester}/{version}/config.yaml → src/components/examples/api/{semester}/{version}/config.yaml


+ 7 - 0
src/components/responses/404.yaml

@@ -0,0 +1,7 @@
+description: OK
+content:
+  application/json:
+    schema:
+      $ref: ../schemas/error.yaml
+    example:
+      $ref: ../examples/404.yaml

+ 2 - 2
src/components/responses/lecturers-200.yaml → src/components/responses/api/lecturers-200.yaml

@@ -4,6 +4,6 @@ content:
     schema:
       type: array
       items:
-        $ref: ../schemas/lecturer.yaml
+        $ref: ../../schemas/api/lecturer.yaml
     example:
-      $ref: ../examples/lecturers.yaml
+      $ref: ../../examples/api/lecturers.yaml

+ 7 - 0
src/components/responses/api/module-history-200.yaml

@@ -0,0 +1,7 @@
+description: OK
+content:
+  application/json:
+    schema:
+      $ref: ../../schemas/api/module-history.yaml
+    example:
+      $ref: ../../examples/api/module-history.yaml

+ 2 - 2
src/components/responses/modules-200.yaml → src/components/responses/api/modules-200.yaml

@@ -4,6 +4,6 @@ content:
     schema:
       type: array
       items:
-        $ref: ../schemas/module.yaml
+        $ref: ../../schemas/api/module.yaml
     example:
-      $ref: ../examples/modules.yaml
+      $ref: ../../examples/api/modules.yaml

+ 9 - 0
src/components/responses/api/semester-versions-200.yaml

@@ -0,0 +1,9 @@
+description: OK
+content:
+  application/json:
+    schema:
+      type: array
+      items:
+        $ref: ../../schemas/api/semester-version.yaml
+    example:
+      $ref: ../../examples/api/semester-versions.yaml

+ 9 - 0
src/components/responses/api/{semester}/changes-200.yaml

@@ -0,0 +1,9 @@
+description: OK
+content:
+  application/json:
+    schema:
+      type: array
+      items:
+        $ref: ../../../schemas/api/{semester}/change.yaml
+    example:
+      $ref: ../../../examples/api/{semester}/changes.yaml

+ 9 - 0
src/components/responses/api/{semester}/{version}/classes-200.yaml

@@ -0,0 +1,9 @@
+description: OK
+content:
+  application/json:
+    schema:
+      type: array
+      items:
+        $ref: ../../../../schemas/api/{semester}/{version}/class.yaml
+    example:
+      $ref: ../../../../examples/api/{semester}/{version}/classes.yaml

+ 7 - 0
src/components/responses/api/{semester}/{version}/semester-version-config-200.yaml

@@ -0,0 +1,7 @@
+description: OK
+content:
+  application/json:
+    schema:
+      $ref: ../../../../schemas/api/{semester}/{version}/semester-version-config.yaml
+    example:
+      $ref: ../../../../examples/api/{semester}/{version}/config.yaml

+ 0 - 0
src/components/responses/changelog-html-200.yaml → src/components/responses/assets/changelog-html-200.yaml


+ 1 - 1
src/components/responses/{semester}/{version}/klassen-pdf-200.yaml → src/components/responses/assets/{semester}/{version}/file-200.yaml

@@ -1,4 +1,4 @@
 description: OK
 content:
-  application/vnd.ms-excel:
+  application/octet-stream:
     example: ""

+ 0 - 7
src/components/responses/module-history-200.yaml

@@ -1,7 +0,0 @@
-description: OK
-content:
-  application/json:
-    schema:
-      $ref: ../schemas/module-history.yaml
-    example:
-      $ref: ../examples/module-history.yaml

+ 0 - 9
src/components/responses/semester-versions-200.yaml

@@ -1,9 +0,0 @@
-description: OK
-content:
-  application/json:
-    schema:
-      type: array
-      items:
-        $ref: ../schemas/semester-version.yaml
-    example:
-      $ref: ../examples/semester-versions.yaml

+ 0 - 9
src/components/responses/{semester}/changes-200.yaml

@@ -1,9 +0,0 @@
-description: OK
-content:
-  application/json:
-    schema:
-      type: array
-      items:
-        $ref: ../../schemas/{semester}/change.yaml
-    example:
-      $ref: ../../examples/{semester}/changes.yaml

+ 0 - 9
src/components/responses/{semester}/{version}/classes-200.yaml

@@ -1,9 +0,0 @@
-description: OK
-content:
-  application/json:
-    schema:
-      type: array
-      items:
-        $ref: ../../../schemas/{semester}/{version}/class.yaml
-    example:
-      $ref: ../../../examples/{semester}/{version}/classes.yaml

+ 0 - 7
src/components/responses/{semester}/{version}/semester-version-config-200.yaml

@@ -1,7 +0,0 @@
-description: OK
-content:
-  application/json:
-    schema:
-      $ref: ../../../schemas/{semester}/{version}/semester-version-config.yaml
-    example:
-      $ref: ../../../examples/{semester}/{version}/config.yaml

+ 0 - 0
src/components/schemas/lecturer.yaml → src/components/schemas/api/lecturer.yaml


+ 0 - 0
src/components/schemas/module-dependency.yaml → src/components/schemas/api/module-dependency.yaml


+ 2 - 2
src/components/schemas/module-history.yaml → src/components/schemas/api/module-history.yaml

@@ -14,7 +14,7 @@ additionalProperties:
         type: string
       weekday:
         description: The weekday the module took place on
-        $ref: ../enums/weekday.yaml
+        $ref: ../../enums/weekday.yaml
       class:
         description: Name of the class this module is part of
         type: string
@@ -33,7 +33,7 @@ additionalProperties:
           type: string
       teaching_type:
         description: The type of teaching
-        $ref: ../enums/teaching-type.yaml
+        $ref: ../../enums/teaching-type.yaml
       rooms:
         description: List of rooms reserved for this module
         type: array

+ 1 - 1
src/components/schemas/module.yaml → src/components/schemas/api/module.yaml

@@ -40,7 +40,7 @@ properties:
       - array
       - "null"
     items:
-      $ref: ../enums/grading-type.yaml
+      $ref: ../../enums/grading-type.yaml
   cat:
     description: Category of module (Context, Specialization, basic education, …).
     type:

+ 0 - 0
src/components/schemas/semester-version.yaml → src/components/schemas/api/semester-version.yaml


+ 0 - 0
src/components/schemas/{semester}/change.yaml → src/components/schemas/api/{semester}/change.yaml


+ 3 - 3
src/components/schemas/{semester}/{version}/class.yaml → src/components/schemas/api/{semester}/{version}/class.yaml

@@ -3,7 +3,7 @@ description: Single class definition of a specific version
 properties:
   weekday:
     description: The weekday the module took place on
-    $ref: ../../../enums/weekday.yaml
+    $ref: ../../../../enums/weekday.yaml
   from:
     description: Start time of the module, in seconds since midnight
     type: integer
@@ -29,9 +29,9 @@ properties:
       type: string
   teaching_type:
     description: The type of teaching
-    $ref: ../../../enums/teaching-type.yaml
+    $ref: ../../../../enums/teaching-type.yaml
   module_execution_method:
-    $ref: ../../../enums/module-execution-type.yaml
+    $ref: ../../../../enums/module-execution-type.yaml
   pages:
     description: List of pages, on which the module can be found in the PDF
     type: array

+ 0 - 0
src/components/schemas/{semester}/{version}/semester-version-config.yaml → src/components/schemas/api/{semester}/{version}/semester-version-config.yaml


+ 6 - 0
src/components/schemas/error.yaml

@@ -0,0 +1,6 @@
+type: object
+description: An application/User error
+properties:
+  error:
+    type: string
+    description: Further information about the error that occurred.

+ 10 - 10
src/openapi.yaml

@@ -16,21 +16,21 @@ servers:
 
 paths:
   /api/semester-versions:
-    $ref: ./paths/semester-versions.yaml
+    $ref: ./paths/api/semester-versions.yaml
   /api/modules:
-    $ref: ./paths/modules.yaml
+    $ref: ./paths/api/modules.yaml
   /api/lecturers:
-    $ref: ./paths/lecturers.yaml
+    $ref: ./paths/api/lecturers.yaml
   /api/module-history:
-    $ref: ./paths/module-history.yaml
+    $ref: ./paths/api/module-history.yaml
   /api/{semester}/changes:
-    $ref: ./paths/{semester}/changes.yaml
+    $ref: ./paths/api/{semester}/changes.yaml
   /api/{semester}/{version}/classes:
-    $ref: ./paths/{semester}/{version}/classes.yaml
+    $ref: ./paths/api/{semester}/{version}/classes.yaml
   /api/{semester}/{version}/config:
-    $ref: ./paths/{semester}/{version}/config.yaml
+    $ref: ./paths/api/{semester}/{version}/config.yaml
 
   /assets/changelog.html:
-    $ref: ./paths/changelog-html.yaml
-  /assets/{semester}/{version}/klassen.pdf:
-    $ref: ./paths/{semester}/{version}/klassen-pdf.yaml
+    $ref: ./paths/assets/changelog-html.yaml
+  /assets/{semester}/{version}/{file}:
+    $ref: ./paths/assets/{semester}/{version}/file.yaml

+ 1 - 1
src/paths/lecturers.yaml → src/paths/api/lecturers.yaml

@@ -7,4 +7,4 @@ get:
     - Lecturers
   responses:
     "200":
-      $ref: ../components/responses/lecturers-200.yaml
+      $ref: ../../components/responses/api/lecturers-200.yaml

+ 1 - 1
src/paths/module-history.yaml → src/paths/api/module-history.yaml

@@ -7,4 +7,4 @@ get:
     - Modules
   responses:
     "200":
-      $ref: ../components/responses/module-history-200.yaml
+      $ref: ../../components/responses/api/module-history-200.yaml

+ 1 - 1
src/paths/modules.yaml → src/paths/api/modules.yaml

@@ -7,4 +7,4 @@ get:
     - Modules
   responses:
     "200":
-      $ref: ../components/responses/modules-200.yaml
+      $ref: ../../components/responses/api/modules-200.yaml

+ 1 - 1
src/paths/semester-versions.yaml → src/paths/api/semester-versions.yaml

@@ -7,4 +7,4 @@ get:
     - Semesters
   responses:
     "200":
-      $ref: ../components/responses/semester-versions-200.yaml
+      $ref: ../../components/responses/api/semester-versions-200.yaml

+ 2 - 2
src/paths/{semester}/changes.yaml → src/paths/api/{semester}/changes.yaml

@@ -6,7 +6,7 @@ get:
   tags:
     - Semester
   parameters:
-    - $ref: ../../components/parameters/semester.yaml
+    - $ref: ../../../components/parameters/semester.yaml
   responses:
     "200":
-      $ref: ../../components/responses/{semester}/changes-200.yaml
+      $ref: ../../../components/responses/api/{semester}/changes-200.yaml

+ 13 - 0
src/paths/api/{semester}/{version}/classes.yaml

@@ -0,0 +1,13 @@
+get:
+  operationId: GetSemesterVersionClasses
+  summary: >-
+    A list of all classes for this semester/version.
+  security: []
+  tags:
+    - Semester Version
+  parameters:
+    - $ref: ../../../../components/parameters/semester.yaml
+    - $ref: ../../../../components/parameters/version.yaml
+  responses:
+    "200":
+      $ref: ../../../../components/responses/api/{semester}/{version}/classes-200.yaml

+ 13 - 0
src/paths/api/{semester}/{version}/config.yaml

@@ -0,0 +1,13 @@
+get:
+  operationId: GetSemesterVersionConfig
+  summary: >-
+    Configuration/additional information for this semester/version.
+  security: []
+  tags:
+    - Semester Version
+  parameters:
+    - $ref: ../../../../components/parameters/semester.yaml
+    - $ref: ../../../../components/parameters/version.yaml
+  responses:
+    "200":
+      $ref: ../../../../components/responses/api/{semester}/{version}/semester-version-config-200.yaml

+ 2 - 2
src/paths/changelog-html.yaml → src/paths/assets/changelog-html.yaml

@@ -4,7 +4,7 @@ get:
     HTML Changelog of the modulplaner frontend
   security: []
   tags:
-    - Changelog
+    - Assets
   responses:
     "200":
-      $ref: ../components/responses/changelog-html-200.yaml
+      $ref: ../../components/responses/assets/changelog-html-200.yaml

+ 22 - 0
src/paths/assets/{semester}/{version}/file.yaml

@@ -0,0 +1,22 @@
+get:
+  operationId: GetSemesterVersionFile
+  summary: >-
+    Retrieve a file for a specific semester/version.
+  security: []
+  tags:
+    - Assets
+  parameters:
+    - $ref: ../../../../components/parameters/semester.yaml
+    - $ref: ../../../../components/parameters/version.yaml
+    - name: file
+      in: path
+      description: File to retrieve
+      required: true
+      schema:
+        type: string
+        summary: Name of the file to be fetched from the server.
+  responses:
+    "200":
+      $ref: ../../../../components/responses/assets/{semester}/{version}/file-200.yaml
+    "404":
+      $ref: ../../../../components/responses/404.yaml

+ 0 - 13
src/paths/{semester}/{version}/classes.yaml

@@ -1,13 +0,0 @@
-get:
-  operationId: GetSemesterVersionClasses
-  summary: >-
-    A list of all classes for this semester/version.
-  security: []
-  tags:
-    - Semester Version
-  parameters:
-    - $ref: ../../../components/parameters/semester.yaml
-    - $ref: ../../../components/parameters/version.yaml
-  responses:
-    "200":
-      $ref: ../../../components/responses/{semester}/{version}/classes-200.yaml

+ 0 - 13
src/paths/{semester}/{version}/config.yaml

@@ -1,13 +0,0 @@
-get:
-  operationId: GetSemesterVersionConfig
-  summary: >-
-    Configuration/additional information for this semester/version.
-  security: []
-  tags:
-    - Semester Version
-  parameters:
-    - $ref: ../../../components/parameters/semester.yaml
-    - $ref: ../../../components/parameters/version.yaml
-  responses:
-    "200":
-      $ref: ../../../components/responses/{semester}/{version}/semester-version-config-200.yaml

+ 0 - 13
src/paths/{semester}/{version}/klassen-pdf.yaml

@@ -1,13 +0,0 @@
-get:
-  operationId: GetSemesterVersionKlassenPDF
-  summary: >-
-    PDF of the original timetable.
-  security: []
-  tags:
-    - Semester Version
-  parameters:
-    - $ref: ../../../components/parameters/semester.yaml
-    - $ref: ../../../components/parameters/version.yaml
-  responses:
-    "200":
-      $ref: ../../../components/responses/{semester}/{version}/klassen-pdf-200.yaml