microservices/dashboard/api_spec.yaml (561 lines of code) (raw):

tags: - name: dashboard description: APIs of Dashboard microservice are used fetch details of student activity in that paricular course.This microservice also manages all session related operations like create session, fetch session and update session. While creating a session for user, we get session ID in response. The ID holds information about user and course_details. This session ID can be used to get details of a particular session. paths: /dashboard/api/v1/session: post: security: - bearerAuth: [] tags: - dashboard summary: Creates new session for user and returns session ID / Returns ID of active session under that context description: Uses context of type SubCompetency or Modules to create a new session for user parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/sessionPostApiRequest" description: id, title, description and ref_details of the course and competency to be provided for creating a new session. required: true responses: "200": description: Session details of newly created session or existing session of same context content: application/json: schema: $ref: "#/components/schemas/sessionPostApiResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/badRequestResponse" "401": description: Token Expired content: application/json: schema: $ref: "#/components/schemas/tokenExpiredResponse" "403": description: Token not found content: application/json: schema: $ref: "#/components/schemas/tokenNotFoundResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/errorApiResponse" put: security: - bearerAuth: [] tags: - dashboard summary: Update an existing user session description: Uses session_id and completed_percentage, is_active to update an existing session parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/sessionPutApiRequest" description: session_id and completed_percentage / is_active to be provided for updating an existing session required: true responses: "200": description: Session Update details content: application/json: schema: $ref: "#/components/schemas/sessionPutApiResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/badRequestResponse" "401": description: Token Expired content: application/json: schema: $ref: "#/components/schemas/tokenExpiredResponse" "403": description: Token not found content: application/json: schema: $ref: "#/components/schemas/tokenNotFoundResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/errorApiResponse" get: security: - bearerAuth: [] tags: - dashboard summary: Retrieve Details of a particular Session based on Session Id description: Uses session_id to fetch session details of a previously created session from database parameters: - in: query name: id schema: type: string required: true description: Session Id responses: "200": description: Session Data content: application/json: schema: $ref: "#/components/schemas/sessionGetApiResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/badRequestResponse" "401": description: Token Expired content: application/json: schema: $ref: "#/components/schemas/tokenExpiredResponse" "403": description: Token not found content: application/json: schema: $ref: "#/components/schemas/tokenNotFoundResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/errorApiResponse" /dashboard/api/v1/courseContexts: get: security: - bearerAuth: [] tags: - dashboard summary: Retrieves all Course related contexts description: Retrieves all Course contexts which are further used to fetch Competencies/ Subcompetencies responses: "200": description: Session Data content: application/json: schema: $ref: "#/components/schemas/contextsGetApiResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/badRequestResponse" "401": description: Token Expired content: application/json: schema: $ref: "#/components/schemas/tokenExpiredResponse" "403": description: Token not found content: application/json: schema: $ref: "#/components/schemas/tokenNotFoundResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/errorApiResponse" post: security: - bearerAuth: [] tags: - dashboard summary: Fetches Competency / Unit and list of Sub-Competencies / Modules based on context passed description: Uses context of type Course / Program, Compentency / Unit, SubCompetency / Module to fetch details of student progress SubCompetency / Module wise parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/contextsPostApiRequest" description: Given request body fetches all the Competencies. And to fetch all the active Subcompetencies of a particular competency, the request body and response are mentioned below in the schemas section. required: true responses: "200": description: Dashboard Items Details along with context passed in request body content: application/json: schema: $ref: "#/components/schemas/contextsPostApiResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/badRequestResponse" "401": description: Token Expired content: application/json: schema: $ref: "#/components/schemas/tokenExpiredResponse" "403": description: Token not found content: application/json: schema: $ref: "#/components/schemas/tokenNotFoundResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/errorApiResponse" components: securitySchemes: bearerAuth: type: apiKey name: Authorization in: header schemas: sessionPostApiRequest: type: object required: - id - description - title - ref_details properties: id: type: string example: "8TsjZBZXiA6laSLWvlnm" description: type: string example: "An Introduction to Sociology" title: type: string example: "An Introduction to Sociology" ref_details: type: object properties: course_ref: type: string example: "course/ukPVua27rFrjXk8GDD14" competency_ref: type: string example: "competencies/Ksf0Y2bduhtbfUWGvyW4" sessionPutApiRequest: type: object required: - session_id - completed_percentage - is_active properties: session_id: type: string example: "c1d887f0-a1a3-4bca-ae25-c375edcc131a" completed_percentage: type: number example: 15.7 is_active: type: boolean example: false contextsPostApiRequest: type: object required: - course_id - competency_id properties: course_id: type: string example: "ukPVua27rFrjXk8GDD14" competency_id: type: string example: "" subcompetenciesPostApiRequest: type: object required: - course_id - competency_id - subcompetency_id - completed properties: course_id: type: string example: "ukPVua27rFrjXk8GDD14" competency_id: type: string example: "Ksf0Y2bduhtbfUWGvyW4" subcompetency_id: type: string example: "" completed: type: boolean example: false sessionPostApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Session created successfully data: type: object properties: session_id: type: string example: "4e7ea201-9193-45f9-a0ac-0b9ae4ff6520" activity_id: type: string example: "teachme" completed_percentage: type: string example: 1 is_active: type: boolean example: true, context_ref: type: string example: "sub_competencies/8TsjZBZXiA6laSLWvlnm" course_ref: type: string example: "course/ukPVua27rFrjXk8GDD14" competency_ref: type: string example: "competencies/Ksf0Y2bduhtbfUWGvyW4" start_time: type: number example: 1589475371.6498435 user_id: type: string example: "fiurc756IqcdRSs19upxiVLt1Gr2" sessionPutApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Session updated successfully data: type: string example: "c1d887f0-a1a3-4bca-ae25-c375edcc131a" sessionGetApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Session data fetched successfully data: type: object properties: activity_id: type: string example: teachme completed_percentage: type: integer example: 1 is_active: type: boolean example: true context_ref: type: string example: "level0/K1JIJIAB5UcuCOLVG3DD/level1/DtjAdlzhUIQ7sSbBD46z/level2/AjpPOsvAEEHbsQp4zR6J" start_time: type: number example: 1588856964.5381594 user_id: type: string example: fiurc756IqcdRSs19upxiVLt1Gr2 course_details: type: array items: type: object example: - level0: id: "4RJIJIgsdfcuCOLVG3ws" label: "SOCI-1001S" type: "Program" is_valid: true title: "Introduction to Sociology" display_title: "Introduction to Sociology" - level1: description: "Unit 1: Foundations of Sociology" display_title: "Week 1 Unit 1: Foundations of Sociology" id: "Ksf0Y2bduhtbfUWGvyW4" is_valid: true label: null parent_node: "courses/ukPVua27rFrjXk8GDD14" title: "Unit 1: Foundations of Sociology" type: "Units" - level2: all_learning_resource: "Foundations of Sociology" description: "An Introduction to Sociology" display_title: "An Introduction to Sociology" id: "8TsjZBZXiA6laSLWvlnm" is_valid: true label: "" parent_node: "competencies/Ksf0Y2bduhtbfUWGvyW4" title: "An Introduction to Sociology" contextsGetApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Successfully fetched course related contexts data: type: array items: type: object example: - id: "K1JIJIAB5UcuCOLVG3DD" label: "EDUC 6005" type: "Course" is_valid: true title: "MSECS" display_title: "MSECS : MS in Early Childhood Studies" - id: "4RJIJIgsdfcuCOLVG3ws" label: "SOCI-1001S" type: "Program" is_valid: true title: "Introduction to Sociology" display_title: "Introduction to Sociology" contextsPostApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Successfully fetched course related contexts data: type: array items: type: object example: - description: "Unit 1: Foundations of Sociology" display_title: "Week 1 Unit 1: Foundations of Sociology" id: "Ksf0Y2bduhtbfUWGvyW4" is_valid: true label: null parent_node: "courses/ukPVua27rFrjXk8GDD14" title: "Unit 1: Foundations of Sociology" type: "Units" - description: "Unit 2: Individuals in Society" display_title: "Week 2 Unit 2: Individuals in Society" id: "xzhq6hcQFYgXBY0wrIIU" is_valid: null label: null parent_node: "courses/ukPVua27rFrjXk8GDD14" title: "Unit 2: Individuals in Society" type: "Units" subcomptenciesPostApiResponse: type: object properties: success: type: boolean example: true message: type: string example: Successfully fetched course related contexts data: type: array items: type: object example: - all_learning_resource: "Foundations of Sociology" description: "An Introduction to Sociology" display_title: "An Introduction to Sociology" id: "8TsjZBZXiA6laSLWvlnm" is_valid: null label: null parent_node: "competencies/Ksf0Y2bduhtbfUWGvyW4" session_details: type: object example: - activity_id: "teachme" competency_ref: "competencies/Ksf0Y2bduhtbfUWGvyW4" completed_percentage: 7 context_ref: "sub_competencies/8TsjZBZXiA6laSLWvlnm" course_ref: "course/ukPVua27rFrjXk8GDD14" is_active: true session_id: "8a1ceee6-65eb-467f-9dfd-caf86d0fdcbe" start_time: 1627553657.8249762 user_id: "x213zvK63PMbkdK50Uuu7hV6b2y2" title: "An Introduction to Sociology" tokenExpiredResponse: type: object properties: success: type: boolean example: false message: type: string example: Token expired data: type: object nullable: true example: null tokenNotFoundResponse: type: object properties: success: type: boolean example: false message: type: string example: Token not found data: type: object nullable: true example: null errorApiResponse: type: object properties: success: type: boolean example: false message: type: string example: Something went wrong data: type: object nullable: true example: null badRequestResponse: type: object properties: success: type: boolean example: false message: type: string example: Validation failed data: type: object nullable: true example: null