StudE-Backend/stude/schema.yml

1611 lines
39 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/:
get:
operationId: api_v1_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_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/{id}/:
get:
operationId: api_v1_messages_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this message.
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/near/:
get:
operationId: api_v1_student_status_near_list
tags:
- api
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StudentStatusLocation'
description: ''
/api/v1/student_status/near_current_location//:
post:
operationId: api_v1_student_status_near_current_location_create
tags:
- api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/StudentStatusLocation'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/StudentStatusLocation'
multipart/form-data:
schema:
$ref: '#/components/schemas/StudentStatusLocation'
required: true
security:
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/StudentStatusLocation'
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/{name}/:
get:
operationId: api_v1_study_groups_retrieve
parameters:
- in: path
name: name
schema:
type: string
required: true
tags:
- api
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/StudyGroupDetail'
description: ''
/api/v1/study_groups/create/:
post:
operationId: api_v1_study_groups_create_create
tags:
- api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/StudyGroupCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/StudyGroupCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/StudyGroupCreate'
required: true
security:
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/StudyGroupCreate'
description: ''
/api/v1/study_groups/create/{id}/:
patch:
operationId: api_v1_study_groups_create_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this study group.
required: true
tags:
- api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedStudyGroupCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedStudyGroupCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedStudyGroupCreate'
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/StudyGroupCreate'
description: ''
delete:
operationId: api_v1_study_groups_create_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this study group.
required: true
tags:
- api
security:
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/study_groups/member_avatars/:
get:
operationId: api_v1_study_groups_member_avatars_list
tags:
- api
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomUserAvatar'
description: ''
/api/v1/study_groups/near/:
get:
operationId: api_v1_study_groups_near_list
tags:
- api
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StudyGroupDistance'
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/SubjectInstance'
description: ''
/api/v1/subjects/{course_slug}:
get:
operationId: api_v1_subjects_list_2
parameters:
- in: path
name: course_slug
schema:
type: string
required: true
tags:
- api
security:
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SubjectInstance'
description: ''
/api/v1/subjects/{course_slug}/{year_slug}/{semester_slug}:
get:
operationId: api_v1_subjects_list_3
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/SubjectInstance'
description: ''
/api/v1/subjects/all:
get:
operationId: api_v1_subjects_all_list
tags:
- api
security:
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SubjectInstance'
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
required:
- id
- name
- shortname
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: integer
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
avatar:
type: string
format: uri
first_name:
type: string
maxLength: 100
last_name:
type: string
maxLength: 100
irregular:
type: boolean
required:
- avatar
- course_shortname
- first_name
- last_name
- semester_shortname
- student_id_number
- username
- yearlevel_shortname
CustomUserAvatar:
type: object
properties:
avatar:
type: string
format: uri
username:
type: string
readOnly: true
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
required:
- avatar
- username
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
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
study_group:
type: string
message_content:
type: string
timestamp:
type: string
format: date-time
required:
- id
- message_content
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: integer
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
avatar:
type: string
format: uri
first_name:
type: string
maxLength: 100
last_name:
type: string
maxLength: 100
irregular:
type: boolean
PatchedStudentStatus:
type: object
properties:
user:
type: string
readOnly: true
subject:
type: string
location:
type: string
timestamp:
type: string
format: date-time
active:
type: boolean
study_group:
type: string
nullable: true
landmark:
type: string
nullable: true
PatchedStudyGroupCreate:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
subject:
type: string
location:
type: string
landmark:
type: string
nullable: true
timestamp:
type: string
format: date-time
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
timestamp:
type: string
format: date-time
active:
type: boolean
study_group:
type: string
nullable: true
landmark:
type: string
nullable: true
required:
- active
- location
- subject
- timestamp
- user
StudentStatusLocation:
type: object
properties:
user:
type: string
readOnly: true
location:
type: string
distance:
type: string
readOnly: true
subject:
type: string
active:
type: boolean
readOnly: true
study_group:
type: string
nullable: true
landmark:
type: string
nullable: true
required:
- active
- distance
- location
- subject
- user
StudyGroup:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
students:
type: array
items:
type: string
subject:
type: string
location:
type: string
landmark:
type: string
nullable: true
radius:
type: number
format: double
timestamp:
type: string
format: date-time
readOnly: true
required:
- id
- location
- name
- radius
- students
- subject
- timestamp
StudyGroupCreate:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
subject:
type: string
location:
type: string
landmark:
type: string
nullable: true
timestamp:
type: string
format: date-time
readOnly: true
required:
- id
- location
- name
- subject
- timestamp
StudyGroupDetail:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
students:
type: array
items:
type: string
subject:
type: string
location:
type: string
landmark:
type: string
nullable: true
timestamp:
type: string
format: date-time
readOnly: true
required:
- id
- location
- name
- students
- subject
- timestamp
StudyGroupDistance:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
students:
type: array
items:
type: string
subject:
type: string
location:
type: string
landmark:
type: string
nullable: true
distance:
type: string
readOnly: true
default: 0
timestamp:
type: string
format: date-time
readOnly: true
required:
- distance
- id
- location
- name
- students
- subject
- timestamp
SubjectInstance:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
readOnly: true
code:
type: string
maxLength: 16
course:
type: string
nullable: true
year_level:
type: string
nullable: true
semester:
type: string
nullable: true
required:
- code
- course
- id
- name
- semester
- year_level
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