mirror of
https://github.com/lemeow125/StudE-Backend.git
synced 2025-01-19 07:03:01 +08:00
1299 lines
31 KiB
YAML
1299 lines
31 KiB
YAML
|
openapi: 3.0.3
|
||
|
info:
|
||
|
title: StudE API
|
||
|
version: 1.0.0
|
||
|
description: A Capstone project
|
||
|
paths:
|
||
|
/api/v1/accounts/jwt/create/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_jwt_create_create
|
||
|
description: |-
|
||
|
Takes a set of user credentials and returns an access and refresh JSON web
|
||
|
token pair to prove the authentication of those credentials.
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenObtainPair'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenObtainPair'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenObtainPair'
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenObtainPair'
|
||
|
description: ''
|
||
|
/api/v1/accounts/jwt/refresh/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_jwt_refresh_create
|
||
|
description: |-
|
||
|
Takes a refresh type JSON web token and returns an access type JSON web
|
||
|
token if the refresh token is valid.
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenRefresh'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenRefresh'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenRefresh'
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenRefresh'
|
||
|
description: ''
|
||
|
/api/v1/accounts/jwt/verify/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_jwt_verify_create
|
||
|
description: |-
|
||
|
Takes a token and indicates if it is valid. This view provides no
|
||
|
information about a token's fitness for a particular use.
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenVerify'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenVerify'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenVerify'
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/TokenVerify'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/:
|
||
|
get:
|
||
|
operationId: api_v1_accounts_users_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UserRegistration'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UserRegistration'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UserRegistration'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'201':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UserRegistration'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/{id}/:
|
||
|
get:
|
||
|
operationId: api_v1_accounts_users_retrieve
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: id
|
||
|
schema:
|
||
|
type: integer
|
||
|
description: A unique integer value identifying this user.
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
put:
|
||
|
operationId: api_v1_accounts_users_update
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: id
|
||
|
schema:
|
||
|
type: integer
|
||
|
description: A unique integer value identifying this user.
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
patch:
|
||
|
operationId: api_v1_accounts_users_partial_update
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: id
|
||
|
schema:
|
||
|
type: integer
|
||
|
description: A unique integer value identifying this user.
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
delete:
|
||
|
operationId: api_v1_accounts_users_destroy
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: id
|
||
|
schema:
|
||
|
type: integer
|
||
|
description: A unique integer value identifying this user.
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'204':
|
||
|
description: No response body
|
||
|
/api/v1/accounts/users/activation/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_activation_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Activation'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Activation'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Activation'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Activation'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/me/:
|
||
|
get:
|
||
|
operationId: api_v1_accounts_users_me_retrieve
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
put:
|
||
|
operationId: api_v1_accounts_users_me_update
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
patch:
|
||
|
operationId: api_v1_accounts_users_me_partial_update
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedCustomUser'
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/CustomUser'
|
||
|
description: ''
|
||
|
delete:
|
||
|
operationId: api_v1_accounts_users_me_destroy
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'204':
|
||
|
description: No response body
|
||
|
/api/v1/accounts/users/resend_activation/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_resend_activation_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/reset_password/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_reset_password_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/reset_password_confirm/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_reset_password_confirm_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PasswordResetConfirm'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PasswordResetConfirm'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PasswordResetConfirm'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PasswordResetConfirm'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/reset_username/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_reset_username_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SendEmailReset'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/reset_username_confirm/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_reset_username_confirm_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UsernameResetConfirm'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UsernameResetConfirm'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UsernameResetConfirm'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/UsernameResetConfirm'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/set_password/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_set_password_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetPassword'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetPassword'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetPassword'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetPassword'
|
||
|
description: ''
|
||
|
/api/v1/accounts/users/set_username/:
|
||
|
post:
|
||
|
operationId: api_v1_accounts_users_set_username_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetUsername'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetUsername'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetUsername'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/SetUsername'
|
||
|
description: ''
|
||
|
/api/v1/courses/:
|
||
|
get:
|
||
|
operationId: api_v1_courses_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Course'
|
||
|
description: ''
|
||
|
/api/v1/landmarks/:
|
||
|
get:
|
||
|
operationId: api_v1_landmarks_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Landmark'
|
||
|
description: ''
|
||
|
/api/v1/messages/group_messages/:
|
||
|
get:
|
||
|
operationId: api_v1_messages_group_messages_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
description: ''
|
||
|
post:
|
||
|
operationId: api_v1_messages_group_messages_create
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'201':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
description: ''
|
||
|
/api/v1/messages/group_messages/{id}/:
|
||
|
get:
|
||
|
operationId: api_v1_messages_group_messages_retrieve
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: id
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Message'
|
||
|
description: ''
|
||
|
/api/v1/semesters/:
|
||
|
get:
|
||
|
operationId: api_v1_semesters_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Semester'
|
||
|
description: ''
|
||
|
/api/v1/student_status/list/:
|
||
|
get:
|
||
|
operationId: api_v1_student_status_list_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
description: ''
|
||
|
/api/v1/student_status/self/:
|
||
|
get:
|
||
|
operationId: api_v1_student_status_self_retrieve
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
description: ''
|
||
|
put:
|
||
|
operationId: api_v1_student_status_self_update
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
required: true
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
description: ''
|
||
|
patch:
|
||
|
operationId: api_v1_student_status_self_partial_update
|
||
|
tags:
|
||
|
- api
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedStudentStatus'
|
||
|
application/x-www-form-urlencoded:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedStudentStatus'
|
||
|
multipart/form-data:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/PatchedStudentStatus'
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/StudentStatus'
|
||
|
description: ''
|
||
|
/api/v1/study_groups/:
|
||
|
get:
|
||
|
operationId: api_v1_study_groups_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/StudyGroup'
|
||
|
description: ''
|
||
|
/api/v1/study_groups/membership/:
|
||
|
get:
|
||
|
operationId: api_v1_study_groups_membership_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/StudyGroup'
|
||
|
description: ''
|
||
|
/api/v1/subjects/:
|
||
|
get:
|
||
|
operationId: api_v1_subjects_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Subject'
|
||
|
description: ''
|
||
|
/api/v1/subjects/{course_slug}/{year_slug}/{semester_slug}:
|
||
|
get:
|
||
|
operationId: api_v1_subjects_list_2
|
||
|
parameters:
|
||
|
- in: path
|
||
|
name: course_slug
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
- in: path
|
||
|
name: semester_slug
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
- in: path
|
||
|
name: year_slug
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Subject'
|
||
|
description: ''
|
||
|
/api/v1/year_levels/:
|
||
|
get:
|
||
|
operationId: api_v1_year_levels_list
|
||
|
tags:
|
||
|
- api
|
||
|
security:
|
||
|
- jwtAuth: []
|
||
|
- {}
|
||
|
responses:
|
||
|
'200':
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: array
|
||
|
items:
|
||
|
$ref: '#/components/schemas/YearLevel'
|
||
|
description: ''
|
||
|
components:
|
||
|
schemas:
|
||
|
Activation:
|
||
|
type: object
|
||
|
properties:
|
||
|
uid:
|
||
|
type: string
|
||
|
token:
|
||
|
type: string
|
||
|
required:
|
||
|
- token
|
||
|
- uid
|
||
|
Course:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 64
|
||
|
shortname:
|
||
|
type: string
|
||
|
maxLength: 16
|
||
|
subjects:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- id
|
||
|
- name
|
||
|
- shortname
|
||
|
- subjects
|
||
|
CustomUser:
|
||
|
type: object
|
||
|
properties:
|
||
|
username:
|
||
|
type: string
|
||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||
|
only.
|
||
|
pattern: ^[\w.@+-]+$
|
||
|
maxLength: 150
|
||
|
email:
|
||
|
type: string
|
||
|
format: email
|
||
|
title: Email address
|
||
|
maxLength: 254
|
||
|
student_id_number:
|
||
|
type: string
|
||
|
maxLength: 16
|
||
|
year_level:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
yearlevel_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
semester:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
semester_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
course:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
course_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
subjects:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
avatar:
|
||
|
type: string
|
||
|
format: uri
|
||
|
nullable: true
|
||
|
first_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
last_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
is_banned:
|
||
|
type: boolean
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- course_shortname
|
||
|
- first_name
|
||
|
- is_banned
|
||
|
- last_name
|
||
|
- semester_shortname
|
||
|
- student_id_number
|
||
|
- username
|
||
|
- yearlevel_shortname
|
||
|
Landmark:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 64
|
||
|
location:
|
||
|
type: string
|
||
|
required:
|
||
|
- id
|
||
|
- location
|
||
|
- name
|
||
|
Message:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
user:
|
||
|
type: string
|
||
|
study_group:
|
||
|
type: string
|
||
|
message_content:
|
||
|
type: string
|
||
|
maxLength: 1024
|
||
|
timestamp:
|
||
|
type: string
|
||
|
format: date-time
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- id
|
||
|
- message_content
|
||
|
- study_group
|
||
|
- timestamp
|
||
|
- user
|
||
|
PasswordResetConfirm:
|
||
|
type: object
|
||
|
properties:
|
||
|
uid:
|
||
|
type: string
|
||
|
token:
|
||
|
type: string
|
||
|
new_password:
|
||
|
type: string
|
||
|
required:
|
||
|
- new_password
|
||
|
- token
|
||
|
- uid
|
||
|
PatchedCustomUser:
|
||
|
type: object
|
||
|
properties:
|
||
|
username:
|
||
|
type: string
|
||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||
|
only.
|
||
|
pattern: ^[\w.@+-]+$
|
||
|
maxLength: 150
|
||
|
email:
|
||
|
type: string
|
||
|
format: email
|
||
|
title: Email address
|
||
|
maxLength: 254
|
||
|
student_id_number:
|
||
|
type: string
|
||
|
maxLength: 16
|
||
|
year_level:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
yearlevel_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
semester:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
semester_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
course:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
course_shortname:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
subjects:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
avatar:
|
||
|
type: string
|
||
|
format: uri
|
||
|
nullable: true
|
||
|
first_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
last_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
is_banned:
|
||
|
type: boolean
|
||
|
readOnly: true
|
||
|
PatchedStudentStatus:
|
||
|
type: object
|
||
|
properties:
|
||
|
user:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
subject:
|
||
|
type: string
|
||
|
location:
|
||
|
type: string
|
||
|
landmark:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
active:
|
||
|
type: boolean
|
||
|
timestamp:
|
||
|
type: string
|
||
|
format: date
|
||
|
readOnly: true
|
||
|
study_group:
|
||
|
type: array
|
||
|
items:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
Semester:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 64
|
||
|
shortname:
|
||
|
type: string
|
||
|
maxLength: 16
|
||
|
required:
|
||
|
- id
|
||
|
- name
|
||
|
- shortname
|
||
|
SendEmailReset:
|
||
|
type: object
|
||
|
properties:
|
||
|
email:
|
||
|
type: string
|
||
|
format: email
|
||
|
required:
|
||
|
- email
|
||
|
SetPassword:
|
||
|
type: object
|
||
|
properties:
|
||
|
new_password:
|
||
|
type: string
|
||
|
current_password:
|
||
|
type: string
|
||
|
required:
|
||
|
- current_password
|
||
|
- new_password
|
||
|
SetUsername:
|
||
|
type: object
|
||
|
properties:
|
||
|
current_password:
|
||
|
type: string
|
||
|
new_username:
|
||
|
type: string
|
||
|
title: Username
|
||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||
|
only.
|
||
|
pattern: ^[\w.@+-]+$
|
||
|
maxLength: 150
|
||
|
required:
|
||
|
- current_password
|
||
|
- new_username
|
||
|
StudentStatus:
|
||
|
type: object
|
||
|
properties:
|
||
|
user:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
subject:
|
||
|
type: string
|
||
|
location:
|
||
|
type: string
|
||
|
landmark:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
active:
|
||
|
type: boolean
|
||
|
timestamp:
|
||
|
type: string
|
||
|
format: date
|
||
|
readOnly: true
|
||
|
study_group:
|
||
|
type: array
|
||
|
items:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- location
|
||
|
- study_group
|
||
|
- subject
|
||
|
- timestamp
|
||
|
- user
|
||
|
StudyGroup:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
users:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
subject:
|
||
|
type: string
|
||
|
location:
|
||
|
type: string
|
||
|
landmark:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 48
|
||
|
active:
|
||
|
type: boolean
|
||
|
timestamp:
|
||
|
type: string
|
||
|
format: date
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- id
|
||
|
- location
|
||
|
- name
|
||
|
- subject
|
||
|
- timestamp
|
||
|
Subject:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 64
|
||
|
codes:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
courses:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
year_levels:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
semesters:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
required:
|
||
|
- codes
|
||
|
- courses
|
||
|
- id
|
||
|
- name
|
||
|
- semesters
|
||
|
- year_levels
|
||
|
TokenObtainPair:
|
||
|
type: object
|
||
|
properties:
|
||
|
username:
|
||
|
type: string
|
||
|
writeOnly: true
|
||
|
password:
|
||
|
type: string
|
||
|
writeOnly: true
|
||
|
access:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
refresh:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
required:
|
||
|
- access
|
||
|
- password
|
||
|
- refresh
|
||
|
- username
|
||
|
TokenRefresh:
|
||
|
type: object
|
||
|
properties:
|
||
|
access:
|
||
|
type: string
|
||
|
readOnly: true
|
||
|
refresh:
|
||
|
type: string
|
||
|
writeOnly: true
|
||
|
required:
|
||
|
- access
|
||
|
- refresh
|
||
|
TokenVerify:
|
||
|
type: object
|
||
|
properties:
|
||
|
token:
|
||
|
type: string
|
||
|
writeOnly: true
|
||
|
required:
|
||
|
- token
|
||
|
UserRegistration:
|
||
|
type: object
|
||
|
properties:
|
||
|
username:
|
||
|
type: string
|
||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||
|
only.
|
||
|
pattern: ^[\w.@+-]+$
|
||
|
maxLength: 150
|
||
|
email:
|
||
|
type: string
|
||
|
format: email
|
||
|
password:
|
||
|
type: string
|
||
|
writeOnly: true
|
||
|
student_id_number:
|
||
|
type: string
|
||
|
year_level:
|
||
|
type: integer
|
||
|
nullable: true
|
||
|
semester:
|
||
|
type: integer
|
||
|
nullable: true
|
||
|
course:
|
||
|
type: integer
|
||
|
nullable: true
|
||
|
subjects:
|
||
|
type: array
|
||
|
items:
|
||
|
type: string
|
||
|
nullable: true
|
||
|
avatar:
|
||
|
type: string
|
||
|
format: uri
|
||
|
nullable: true
|
||
|
first_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
last_name:
|
||
|
type: string
|
||
|
maxLength: 100
|
||
|
required:
|
||
|
- email
|
||
|
- first_name
|
||
|
- last_name
|
||
|
- password
|
||
|
- student_id_number
|
||
|
- username
|
||
|
UsernameResetConfirm:
|
||
|
type: object
|
||
|
properties:
|
||
|
new_username:
|
||
|
type: string
|
||
|
title: Username
|
||
|
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
|
||
|
only.
|
||
|
pattern: ^[\w.@+-]+$
|
||
|
maxLength: 150
|
||
|
required:
|
||
|
- new_username
|
||
|
YearLevel:
|
||
|
type: object
|
||
|
properties:
|
||
|
id:
|
||
|
type: integer
|
||
|
readOnly: true
|
||
|
name:
|
||
|
type: string
|
||
|
maxLength: 64
|
||
|
shortname:
|
||
|
type: string
|
||
|
maxLength: 16
|
||
|
required:
|
||
|
- id
|
||
|
- name
|
||
|
- shortname
|
||
|
securitySchemes:
|
||
|
jwtAuth:
|
||
|
type: http
|
||
|
scheme: bearer
|
||
|
bearerFormat: JWT
|