Files
holy-flavor-rater/backend/schema.yaml
2026-04-27 03:36:35 +02:00

2988 lines
73 KiB
YAML

openapi: 3.0.3
info:
title: Holy Flavors API
version: 1.0.0
description: API for rating flavors
paths:
/api/admin-custom/{id}/trigger_job/:
post:
operationId: admin_custom_trigger_job_create
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/{id}/update_job_schedule/:
patch:
operationId: admin_custom_update_job_schedule_partial_update
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/{id}/user_detail/:
get:
operationId: admin_custom_user_detail_retrieve
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
patch:
operationId: admin_custom_user_detail_partial_update
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
delete:
operationId: admin_custom_user_detail_destroy
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/admin-custom/config/:
get:
operationId: admin_custom_config_retrieve
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
patch:
operationId: admin_custom_config_partial_update
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/jobs/:
get:
operationId: admin_custom_jobs_retrieve
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/send_test_email/:
post:
operationId: admin_custom_send_test_email_create
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/stats/:
get:
operationId: admin_custom_stats_retrieve
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/admin-custom/users/:
get:
operationId: admin_custom_users_retrieve
tags:
- admin-custom
security:
- cookieAuth: []
responses:
'200':
description: No response body
/api/auth/logout/:
post:
operationId: auth_logout_create
tags:
- auth
security:
- cookieAuth: []
- {}
responses:
'200':
description: No response body
/api/auth/token/:
post:
operationId: auth_token_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:
- auth
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/auth/token/refresh/:
post:
operationId: auth_token_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:
- auth
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/auth/token/verify/:
post:
operationId: auth_token_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:
- auth
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/banners/:
get:
operationId: banners_list
tags:
- banners
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Banner'
description: ''
post:
operationId: banners_create
tags:
- banners
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Banner'
multipart/form-data:
schema:
$ref: '#/components/schemas/Banner'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
/api/banners/{id}/:
get:
operationId: banners_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
put:
operationId: banners_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Banner'
multipart/form-data:
schema:
$ref: '#/components/schemas/Banner'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
patch:
operationId: banners_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedBanner'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedBanner'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedBanner'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
delete:
operationId: banners_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/banners/{id}/activate/:
post:
operationId: banners_activate_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Banner'
multipart/form-data:
schema:
$ref: '#/components/schemas/Banner'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
/api/banners/{id}/toggle_enabled/:
post:
operationId: banners_toggle_enabled_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this banner.
required: true
tags:
- banners
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Banner'
multipart/form-data:
schema:
$ref: '#/components/schemas/Banner'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
/api/banners/active/:
get:
operationId: banners_active_retrieve
tags:
- banners
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
description: ''
/api/categories/:
get:
operationId: categories_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- categories
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedCategoryList'
description: ''
/api/categories/{id}/:
get:
operationId: categories_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this category.
required: true
tags:
- categories
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Category'
description: ''
/api/flavors/:
get:
operationId: flavors_list
parameters:
- in: query
name: category
schema:
type: integer
- in: query
name: category__slug
schema:
type: string
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: search
required: false
in: query
description: A search term.
schema:
type: string
tags:
- flavors
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedFlavorList'
description: ''
post:
operationId: flavors_create
tags:
- flavors
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Flavor'
multipart/form-data:
schema:
$ref: '#/components/schemas/Flavor'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
/api/flavors/{id}/:
get:
operationId: flavors_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this flavor.
required: true
tags:
- flavors
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
put:
operationId: flavors_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this flavor.
required: true
tags:
- flavors
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Flavor'
multipart/form-data:
schema:
$ref: '#/components/schemas/Flavor'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
patch:
operationId: flavors_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this flavor.
required: true
tags:
- flavors
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedFlavor'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedFlavor'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedFlavor'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
delete:
operationId: flavors_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this flavor.
required: true
tags:
- flavors
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/flavors/followed_top/:
get:
operationId: flavors_followed_top_retrieve
tags:
- flavors
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
/api/flavors/newest/:
get:
operationId: flavors_newest_retrieve
tags:
- flavors
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
/api/flavors/search/:
get:
operationId: flavors_search_retrieve
tags:
- flavors
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
/api/flavors/top/:
get:
operationId: flavors_top_retrieve
tags:
- flavors
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Flavor'
description: ''
/api/notifications/:
get:
operationId: notifications_list
tags:
- notifications
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Notification'
description: ''
/api/notifications/{id}/:
get:
operationId: notifications_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this notification.
required: true
tags:
- notifications
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
description: ''
/api/notifications/{id}/mark_read/:
post:
operationId: notifications_mark_read_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this notification.
required: true
tags:
- notifications
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Notification'
multipart/form-data:
schema:
$ref: '#/components/schemas/Notification'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
description: ''
/api/notifications/mark_all_read/:
post:
operationId: notifications_mark_all_read_create
tags:
- notifications
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Notification'
multipart/form-data:
schema:
$ref: '#/components/schemas/Notification'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Notification'
description: ''
/api/ratings/:
get:
operationId: ratings_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- ratings
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedRatingList'
description: ''
post:
operationId: ratings_create
tags:
- ratings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Rating'
multipart/form-data:
schema:
$ref: '#/components/schemas/Rating'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
/api/ratings/{id}/:
get:
operationId: ratings_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this rating.
required: true
tags:
- ratings
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
put:
operationId: ratings_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this rating.
required: true
tags:
- ratings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Rating'
multipart/form-data:
schema:
$ref: '#/components/schemas/Rating'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
patch:
operationId: ratings_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this rating.
required: true
tags:
- ratings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedRating'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedRating'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedRating'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
delete:
operationId: ratings_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this rating.
required: true
tags:
- ratings
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/ratings/{id}/reply/:
post:
operationId: ratings_reply_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this rating.
required: true
tags:
- ratings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Rating'
multipart/form-data:
schema:
$ref: '#/components/schemas/Rating'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
/api/ratings/feed/:
get:
operationId: ratings_feed_retrieve
tags:
- ratings
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
/api/ratings/recent/:
get:
operationId: ratings_recent_retrieve
tags:
- ratings
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Rating'
description: ''
/api/replies/:
get:
operationId: replies_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- replies
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedReplyList'
description: ''
post:
operationId: replies_create
tags:
- replies
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Reply'
multipart/form-data:
schema:
$ref: '#/components/schemas/Reply'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
description: ''
/api/replies/{id}/:
get:
operationId: replies_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this reply.
required: true
tags:
- replies
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
description: ''
put:
operationId: replies_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this reply.
required: true
tags:
- replies
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Reply'
multipart/form-data:
schema:
$ref: '#/components/schemas/Reply'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
description: ''
patch:
operationId: replies_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this reply.
required: true
tags:
- replies
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedReply'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedReply'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedReply'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Reply'
description: ''
delete:
operationId: replies_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this reply.
required: true
tags:
- replies
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/tickets/:
get:
operationId: tickets_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- tickets
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTicketList'
description: ''
post:
operationId: tickets_create
tags:
- tickets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Ticket'
multipart/form-data:
schema:
$ref: '#/components/schemas/Ticket'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
/api/tickets/{id}/:
get:
operationId: tickets_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
put:
operationId: tickets_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Ticket'
multipart/form-data:
schema:
$ref: '#/components/schemas/Ticket'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
patch:
operationId: tickets_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedTicket'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedTicket'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedTicket'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
delete:
operationId: tickets_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/tickets/{id}/add_message/:
post:
operationId: tickets_add_message_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Ticket'
multipart/form-data:
schema:
$ref: '#/components/schemas/Ticket'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
/api/tickets/{id}/update_status/:
post:
operationId: tickets_update_status_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this ticket.
required: true
tags:
- tickets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Ticket'
multipart/form-data:
schema:
$ref: '#/components/schemas/Ticket'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ticket'
description: ''
/api/token/:
post:
operationId: token_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:
- token
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/users/:
get:
operationId: users_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- users
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUserList'
description: ''
post:
operationId: users_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/{id}/:
get:
operationId: users_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
put:
operationId: users_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
patch:
operationId: users_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUser'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUser'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUser'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
delete:
operationId: users_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/users/{id}/add_comment/:
post:
operationId: users_add_comment_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/{id}/delete_comment/{comment_id}/:
delete:
operationId: users_delete_comment_destroy
parameters:
- in: path
name: comment_id
schema:
type: string
required: true
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
security:
- cookieAuth: []
responses:
'204':
description: No response body
/api/users/{id}/follow/:
post:
operationId: users_follow_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/{id}/unfollow/:
post:
operationId: users_unfollow_create
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this user.
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/change_password/:
post:
operationId: users_change_password_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/complete_password_reset/:
post:
operationId: users_complete_password_reset_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/confirm_account_deletion/:
post:
operationId: users_confirm_account_deletion_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/confirm_email/:
post:
operationId: users_confirm_email_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/dashboard/:
get:
operationId: users_dashboard_retrieve
tags:
- users
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/following_list/:
get:
operationId: users_following_list_retrieve
tags:
- users
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/me/:
get:
operationId: users_me_retrieve
tags:
- users
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/profile/{username}/:
get:
operationId: users_profile_retrieve
parameters:
- in: path
name: username
schema:
type: string
description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
only.
required: true
tags:
- users
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/request_account_deletion/:
post:
operationId: users_request_account_deletion_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/request_password_reset/:
post:
operationId: users_request_password_reset_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/resend_verification/:
post:
operationId: users_resend_verification_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/signup/:
post:
operationId: users_signup_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/update_avatar/:
post:
operationId: users_update_avatar_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/update_preferences/:
patch:
operationId: users_update_preferences_partial_update
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUser'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUser'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUser'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/update_profile/:
patch:
operationId: users_update_profile_partial_update
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUser'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUser'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUser'
security:
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
/api/users/verify_signup/:
post:
operationId: users_verify_signup_create
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
multipart/form-data:
schema:
$ref: '#/components/schemas/User'
required: true
security:
- cookieAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: ''
components:
schemas:
Banner:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 100
slug:
type: string
maxLength: 50
pattern: ^[-a-zA-Z0-9_]+$
description:
type: string
is_active:
type: boolean
description: Designates this as the global default banner.
is_enabled:
type: boolean
description: Allows users to select this banner.
settings: {}
schema: {}
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
required:
- created_at
- id
- name
- slug
- updated_at
Category:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 50
slug:
type: string
maxLength: 50
pattern: ^[-a-zA-Z0-9_]+$
required:
- id
- name
- slug
Flavor:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 100
category:
type: integer
category_name:
type: string
readOnly: true
category_slug:
type: string
readOnly: true
description:
type: string
average_rating:
type: number
format: double
readOnly: true
followed_average_rating:
type: number
format: double
readOnly: true
user_rating:
type: integer
nullable: true
readOnly: true
ratings:
type: array
items:
$ref: '#/components/schemas/Rating'
readOnly: true
image_url:
type: string
nullable: true
readOnly: true
image_urls:
type: array
items:
type: string
readOnly: true
image:
type: string
format: uri
writeOnly: true
nullable: true
is_available:
type: boolean
is_legacy:
type: boolean
shop_url:
type: string
format: uri
nullable: true
maxLength: 500
rating_distribution:
type: object
additionalProperties:
type: integer
readOnly: true
required:
- average_rating
- category
- category_name
- category_slug
- followed_average_rating
- id
- image_url
- image_urls
- name
- rating_distribution
- ratings
- user_rating
LanguageEnum:
enum:
- en
- de
type: string
description: |-
* `en` - English
* `de` - Deutsch
Notification:
type: object
properties:
id:
type: integer
readOnly: true
actor_username:
type: string
readOnly: true
actor_avatar:
type: string
nullable: true
readOnly: true
notification_type:
$ref: '#/components/schemas/NotificationTypeEnum'
rating:
type: integer
nullable: true
reply:
type: integer
nullable: true
ticket:
type: integer
nullable: true
profile_comment:
type: integer
nullable: true
profile_owner_username:
type: string
nullable: true
readOnly: true
is_read:
type: boolean
created_at:
type: string
format: date-time
readOnly: true
flavor_name:
type: string
nullable: true
readOnly: true
flavor_id:
type: integer
nullable: true
readOnly: true
required:
- actor_avatar
- actor_username
- created_at
- flavor_id
- flavor_name
- id
- notification_type
- profile_owner_username
NotificationTypeEnum:
enum:
- reply
- mention
- follow
- ticket_new
- ticket_reply
- profile_comment
type: string
description: |-
* `reply` - Reply
* `mention` - Mention
* `follow` - Follow
* `ticket_new` - New Ticket
* `ticket_reply` - Ticket Reply
* `profile_comment` - Profile Comment
PaginatedCategoryList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Category'
PaginatedFlavorList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Flavor'
PaginatedRatingList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Rating'
PaginatedReplyList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Reply'
PaginatedTicketList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Ticket'
PaginatedUserList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/User'
PatchedBanner:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 100
slug:
type: string
maxLength: 50
pattern: ^[-a-zA-Z0-9_]+$
description:
type: string
is_active:
type: boolean
description: Designates this as the global default banner.
is_enabled:
type: boolean
description: Allows users to select this banner.
settings: {}
schema: {}
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
PatchedFlavor:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
maxLength: 100
category:
type: integer
category_name:
type: string
readOnly: true
category_slug:
type: string
readOnly: true
description:
type: string
average_rating:
type: number
format: double
readOnly: true
followed_average_rating:
type: number
format: double
readOnly: true
user_rating:
type: integer
nullable: true
readOnly: true
ratings:
type: array
items:
$ref: '#/components/schemas/Rating'
readOnly: true
image_url:
type: string
nullable: true
readOnly: true
image_urls:
type: array
items:
type: string
readOnly: true
image:
type: string
format: uri
writeOnly: true
nullable: true
is_available:
type: boolean
is_legacy:
type: boolean
shop_url:
type: string
format: uri
nullable: true
maxLength: 500
rating_distribution:
type: object
additionalProperties:
type: integer
readOnly: true
PatchedRating:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: string
readOnly: true
user_id:
type: integer
readOnly: true
user_avatar:
type: string
nullable: true
readOnly: true
flavor:
type: integer
flavor_name:
type: string
readOnly: true
flavor_image:
type: string
nullable: true
readOnly: true
category_name:
type: string
readOnly: true
category_slug:
type: string
readOnly: true
is_available:
type: boolean
readOnly: true
is_legacy:
type: boolean
readOnly: true
score:
type: integer
maximum: 10
minimum: 1
comment:
type: string
nullable: true
created_at:
type: string
format: date-time
readOnly: true
replies:
type: array
items:
$ref: '#/components/schemas/Reply'
readOnly: true
PatchedReply:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: string
readOnly: true
rating:
type: integer
readOnly: true
text:
type: string
created_at:
type: string
format: date-time
readOnly: true
PatchedTicket:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: integer
readOnly: true
username:
type: string
readOnly: true
user_email:
type: string
format: email
readOnly: true
user_avatar:
type: string
nullable: true
readOnly: true
subject:
type: string
maxLength: 200
description:
type: string
status:
allOf:
- $ref: '#/components/schemas/StatusEnum'
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
messages:
type: array
items:
$ref: '#/components/schemas/TicketMessage'
readOnly: true
PatchedUser:
type: object
properties:
id:
type: integer
readOnly: true
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
theme:
$ref: '#/components/schemas/ThemeEnum'
language:
$ref: '#/components/schemas/LanguageEnum'
avatar:
type: string
nullable: true
readOnly: true
following_count:
type: integer
readOnly: true
followers_count:
type: integer
readOnly: true
is_following:
type: boolean
readOnly: true
unread_notifications_count:
type: integer
readOnly: true
is_superuser:
type: boolean
readOnly: true
selected_banner:
type: integer
nullable: true
selected_banner_slug:
type: string
readOnly: true
nullable: true
Rating:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: string
readOnly: true
user_id:
type: integer
readOnly: true
user_avatar:
type: string
nullable: true
readOnly: true
flavor:
type: integer
flavor_name:
type: string
readOnly: true
flavor_image:
type: string
nullable: true
readOnly: true
category_name:
type: string
readOnly: true
category_slug:
type: string
readOnly: true
is_available:
type: boolean
readOnly: true
is_legacy:
type: boolean
readOnly: true
score:
type: integer
maximum: 10
minimum: 1
comment:
type: string
nullable: true
created_at:
type: string
format: date-time
readOnly: true
replies:
type: array
items:
$ref: '#/components/schemas/Reply'
readOnly: true
required:
- category_name
- category_slug
- created_at
- flavor
- flavor_image
- flavor_name
- id
- is_available
- is_legacy
- replies
- score
- user
- user_avatar
- user_id
Reply:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: string
readOnly: true
rating:
type: integer
readOnly: true
text:
type: string
created_at:
type: string
format: date-time
readOnly: true
required:
- created_at
- id
- rating
- text
- user
StatusEnum:
enum:
- open
- in_progress
- resolved
- closed
type: string
description: |-
* `open` - Open
* `in_progress` - In Progress
* `resolved` - Resolved
* `closed` - Closed
ThemeEnum:
enum:
- holy_light
- holy_dark
- latte
- frappe
- macchiato
- mocha
- pink_pastel
- mint_pastel
- lavender_pastel
- dracula
- nord
- gruvbox
- oceanic
- t0p_sai
- t0p_trench
- t0p_blurryface
- t0p_clancy
type: string
description: |-
* `holy_light` - Holy Light
* `holy_dark` - Holy Dark
* `latte` - Catppuccin Latte
* `frappe` - Catppuccin Frappé
* `macchiato` - Catppuccin Macchiato
* `mocha` - Catppuccin Mocha
* `pink_pastel` - Pink Pastel
* `mint_pastel` - Mint Pastel
* `lavender_pastel` - Lavender Pastel
* `dracula` - Dracula
* `nord` - Nordic Frost
* `gruvbox` - Gruvbox Retro
* `oceanic` - Oceanic Deep
* `t0p_sai` - SAI (T0P)
* `t0p_trench` - Trench (T0P)
* `t0p_blurryface` - Blurryface (T0P)
* `t0p_clancy` - Clancy (T0P)
Ticket:
type: object
properties:
id:
type: integer
readOnly: true
user:
type: integer
readOnly: true
username:
type: string
readOnly: true
user_email:
type: string
format: email
readOnly: true
user_avatar:
type: string
nullable: true
readOnly: true
subject:
type: string
maxLength: 200
description:
type: string
status:
allOf:
- $ref: '#/components/schemas/StatusEnum'
readOnly: true
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
messages:
type: array
items:
$ref: '#/components/schemas/TicketMessage'
readOnly: true
required:
- created_at
- description
- id
- messages
- status
- subject
- updated_at
- user
- user_avatar
- user_email
- username
TicketMessage:
type: object
properties:
id:
type: integer
readOnly: true
username:
type: string
readOnly: true
text:
type: string
created_at:
type: string
format: date-time
readOnly: true
is_admin:
type: boolean
readOnly: true
required:
- created_at
- id
- is_admin
- text
- username
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
required:
- access
- refresh
TokenVerify:
type: object
properties:
token:
type: string
writeOnly: true
required:
- token
User:
type: object
properties:
id:
type: integer
readOnly: true
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
theme:
$ref: '#/components/schemas/ThemeEnum'
language:
$ref: '#/components/schemas/LanguageEnum'
avatar:
type: string
nullable: true
readOnly: true
following_count:
type: integer
readOnly: true
followers_count:
type: integer
readOnly: true
is_following:
type: boolean
readOnly: true
unread_notifications_count:
type: integer
readOnly: true
is_superuser:
type: boolean
readOnly: true
selected_banner:
type: integer
nullable: true
selected_banner_slug:
type: string
readOnly: true
nullable: true
required:
- avatar
- followers_count
- following_count
- id
- is_following
- is_superuser
- selected_banner_slug
- unread_notifications_count
- username
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: access_token