2024-03-13 18:23:46 +00:00
openapi : 3.0 .3
info :
title : QUIZ service api
description : Title
version : 1.0 .0
components :
requestBodies :
GetQuizResultsReq :
content :
'application/json' :
schema :
type : object
properties :
to :
description : таймштамп времени, до которого выбирать статистику. если 0 или не передано - этого ограничения нет. верхняя граница времени
type : integer
from :
description : таймштамп времени, после которого выбирать статистику. если 0 или не передано - этого ограничения нет. нижняя граница времени
new :
description : флаг, по которому вернутся только новые результаты, ещё не просмотренные пользователем
type : boolean
page :
description : номер страницы для пагинации
type : integer
require : true
limit :
description : размер страницы для пагинации
type : integer
require : true
QuizCreateReq :
content :
'application/json' :
schema :
type : object
properties :
fingerprinting :
description : set true for save deviceId
type : boolean
repeatable :
description : set true for allow user to repeat quiz
type : boolean
note_prevented :
description : set true for save statistic of incomplete quiz passing
type : boolean
mail_notifications :
description : set true for mail notification for each quiz passing
type : boolean
unique_answers :
description : set true for save statistics only for unique quiz passing
type : boolean
name :
description : name of quiz. max 280 length
type : string
description :
description : description of quiz
type : string
config :
description : config of quiz. serialized json for rules of quiz flow
type : string
status :
description : status of quiz. allow only '', 'draft', 'template', 'stop', 'start'
type : string
limit :
description : limit is count of max quiz passing
type : integer
due_to :
description : last time when quiz is valid. timestamp in seconds
type : integer
time_of_passing :
description : seconds to pass quiz
type : integer
pausable :
description : true if it is allowed for pause quiz
type : boolean
question_cnt :
description : count of questions
type : integer
super :
description : set true if squiz realize group functionality
type : boolean
group_id :
description : group of new quiz
type : integer
QuizGetListReq :
content :
'application/json' :
schema :
type : object
properties :
limit :
description : max items on page
type : integer
offset :
description : page number
type : integer
from :
description : start time of time period. timestamp in seconds
type : integer
to :
description : end time of time period. timestamp in seconds
type : integer
search :
description : string for fulltext search in titles of quizes
type : string
status :
description : allow only - draft, template, timeout, stop, start, offlimit
type : string
deleted :
description : get deleted quizes
type : boolean
archived :
description : get archived quizes
type : boolean
super :
description : set true if squiz realize group functionality
type : boolean
group_id :
description : group of new quiz
type : integer
QuestionCreateReq :
content :
'application/json' :
schema :
type : object
properties :
quiz_id :
description : id of quiz for what question is creating
type : integer
title :
description : title of question. max length 512
type : string
description :
description : description of question. html/text
type : string
type :
description : type of question. allow only text, select, file, variant, images, varimg, emoji, date, number, page, rating
type : string
required :
description : set true if user MUST answer this question
type : boolean
page :
description : page of question
type : integer
content :
description : json serialized of question content settings
type : string
QuestionGetListReq :
content :
'application/json' :
schema :
type : object
properties :
limit :
description : max items on page
type : integer
offset :
description : page number
type : integer
from :
description : start time of time period. timestamp in seconds
type : integer
to :
description : end time of time period. timestamp in seconds
type : integer
search :
description : string for fulltext search in titles of questions
type : string
type :
description : allow only - text, select, file, variant, images, varimg, emoji, date, number, page, rating or empty string
type : string
deleted :
description : get deleted quizes
type : boolean
required :
description : get only require questions
type : boolean
quiz_id :
description : relation to quiz
type : integer
GetQuizReq :
content :
'application/json' :
schema :
type : object
properties :
quiz_id :
type : string
description : secret string id for customer activity
limit :
type : integer
description : page size
page :
type : integer
description : page of questions
need_config :
type : boolean
description : make true if you need all quiz settings with questions page
UpdateQuestionReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of question for update
required : true
title :
type : string
description : new title of question
desc :
type : string
description : new fulltext plain/html description
type :
type : string
description : new type of question
content :
type : string
description : new content of question
required :
type : boolean
description : set true if this question must be answered
page :
type : integer
description : page of question
UpdateQuizReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of question for update
required : true
fp :
type : boolean
description : set true for storing fingerprints
required : true
rep :
type : boolean
description : set true for allow to repeat quiz after passing
required : true
note_prevented :
type : boolean
description : set true for store unfinished passing
required : true
mailing :
type : boolean
description : set true if we should send passing result on every passing
required : true
uniq :
type : boolean
description : set true if we allow only one user quiz passing
required : true
name :
type : string
description : new name of the quiz
desc :
type : string
description : new descriptions of the quiz
conf :
type : string
description : new config of the quiz
status :
type : string
description : new status. only draft,template,stop,start allowed
limit :
type : integer
description : max amount of quiz passing
required : true
due_to :
type : integer
description : max time of quiz passing
required : true
time_of_passing :
type : integer
description : max time to pass quiz
required : true
pausable :
type : boolean
description : allow to pause quiz to user
required : true
question_cnt :
description : count of questions
type : integer
super :
description : set true if squiz realize group functionality
type : boolean
group_id :
description : group of new quiz
type : integer
CopyQuestionReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of copying question
required : true
quiz_id :
type : integer
description : quiz id for copy question to another quiz
CopyQuizReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of copied quiz
required : true
GetQuizHistoryReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of quiz for history
required : true
l :
type : integer
description : naumber of quiz due page
p :
type : integer
description : number of page
DeactivateReq :
content :
'application/json' :
schema :
type : object
properties :
id :
type : integer
description : id of deactivating struct
required : true
2024-03-25 16:03:04 +00:00
GetStatisticsReq :
content :
'application/json' :
schema :
type : object
properties :
to :
description : таймштамп времени, до которого выбирать статистику. если 0 или не передано - этого ограничения нет. верхняя граница времени
type : integer
from :
description : таймштамп времени, после которого выбирать статистику. если 0 или не передано - этого ограничения нет. нижняя граница времени
2024-03-13 18:23:46 +00:00
responses :
GetQuizResultsResp :
description : список результатов, уместившийся на запрошенной странице
content :
'application/json' :
schema :
type : object
properties :
total_count :
description : общее количество элементов удволетворяющее фильтру. нужно для формирования логики пагинации
type : integer
results :
description : список результатов
type : array
items :
type : object
properties :
content :
description : содержимое ответа
type : string
id :
description : айдишник ответа
type : integer
new :
description : статус, был ли просмотрен ответ
type : boolean
created_at :
description : время создания этого результата
type : string
2024-03-25 16:03:04 +00:00
GetDevicesStatsResp :
description : ответ статистики по устройствам
content :
'application/json' :
schema :
type : object
properties :
device :
description : процент устройств среди респондентов
type : object
additionalProperties :
type : number
os :
description : процент операционок среди респондентов
type : object
additionalProperties :
type : number
browser :
description : процент браузеров среди респондентов
type : object
additionalProperties :
type : number
GetGeneralStatsResp :
description : ответ статистики по графикам
content :
'application/json' :
schema :
type : object
properties :
open :
description : ассоциативный массив где ключ - время, а значение - количество открытий
type : object
additionalProperties :
type : number
result :
description : ассоциативный массив, где ключ - время, а значение - количество респондентов, оставивших заявку
type : object
additionalProperties :
type : number
avtime :
description : ассоциативный массив, где ключ - время, а значение - среднее время между первым ответом и последним
type : object
additionalProperties :
type : number
conversation :
description : ассоциативный массив, где ключ - время, а значение - отношение результатов к открытиям
type : object
additionalProperties :
type : number
GetQuestionStatsResp :
description : ответ статистики по вопросам и результатам
content :
'application/json' :
schema :
type : object
properties :
funnel :
description : массив процентов прохождения по опросу
type : array
items :
type : number
results :
description : ассоциативный массив, где ключ - заголовок результата, а значение - количество респондентов, оставивших заявку
type : object
additionalProperties :
type : number
questions :
description : ассоциативный массив, где ключ - id ответа, а значение - ассоциативный массив, где ключ - ответ на вопрос, а значение - процент респондентов, давших такой ответ
type : object
additionalProperties :
type : object
additionalProperties :
type : number
GetStatisticResp :
description : ответ статистики по общему количеству создания квизов, регистрации пользователей, и полученых ответов с result=true, а указанный промежуток времени
content :
'application/json' :
schema :
type : object
properties :
registrations :
description : количество регистраций
type : number
quizes :
description : количество созданных не удаленных опросов
type : number
results :
description : количество ответов с result=true
type : number
2024-03-13 18:23:46 +00:00
QuizModel :
description : object of created quiz
content :
'application/json' :
schema :
type : object
properties :
id :
description : Id of created quiz
type : integer
qid :
description : string id for customers
type : string
deleted :
description : true if quiz deleted
type : boolean
archived :
description : true if quiz archived
type : boolean
fingerprinting :
description : set true for save deviceId
type : boolean
repeatable :
description : set true for allow user to repeat quiz
type : boolean
note_prevented :
description : set true for save statistic of incomplete quiz passing
type : boolean
mail_notifications :
description : set true for mail notification for each quiz passing
type : boolean
unique_answers :
description : set true for save statistics only for unique quiz passing
type : boolean
name :
description : name of quiz. max 280 length
type : string
description :
description : description of quiz
type : string
config :
description : config of quiz. serialized json for rules of quiz flow
type : string
status :
description : status of quiz. allow only '', 'draft', 'template', 'stop', 'start'
type : string
limit :
description : limit is count of max quiz passing
type : integer
due_to :
description : last time when quiz is valid. timestamp in seconds
type : integer
time_of_passing :
description : seconds to pass quiz
type : integer
pausable :
description : true if it is allowed for pause quiz
type : boolean
version :
description : version of quiz
type : integer
version_comment :
description : version comment to version of quiz
type : string
parent_ids :
description : array of previous versions of quiz
type : array
items :
type : integer
created_at :
description : time of creating
type : string
updated_at :
description : time of last updating
type : string
question_cnt :
description : count of questions
type : integer
passed_count :
description : count passings
type : integer
average_time :
description : average time of passing
type : integer
super :
description : set true if squiz realize group functionality
type : boolean
group_id :
description : group of new quiz
type : integer
QuizListGetResp :
description : list of quizes with all filtered quizes count
content :
'application/json' :
schema :
type : object
properties :
count :
description : count of all filtered items
type : integer
items :
description : count of all filtered items
type : array
items :
$ref : '#/components/responses/QuizModel'
QuestionModel :
description : object of created question
content :
'application/json' :
schema :
type : object
properties :
id :
description : Id of created question
type : integer
quiz_id :
description : relation to quiz
type : integer
title :
description : title of question. max 512 length
type : string
description :
description : description of question
type : string
type :
description : status of question. allow only text, select, file, variant, images, varimg, emoji, date, number, page, rating
type : string
required :
description : user must pass this question
type : boolean
deleted :
description : true if question is deleted
type : boolean
page :
description : page if question
type : integer
content :
description : serialized json of created question
type : string
version :
description : version of quiz
type : integer
parent_ids :
description : array of previous versions of quiz
type : array
items :
type : integer
created_at :
description : time of creating
type : string
updated_at :
description : time of last updating
type : string
QuestionListGetResp :
description : list of quizes with all filtered quizes count
content :
'application/json' :
schema :
type : object
properties :
count :
description : count of all filtered items
type : integer
items :
description : count of all filtered items
type : array
items :
$ref : '#/components/responses/QuizModel'
QuizGetResp :
description : short response for customer
content :
'application/json' :
schema :
type : object
properties :
cnt :
type : integer
description : count of all questions in quiz
settings :
type : object
properties :
fp :
type : boolean
description : store fingerprint if true
rep :
type : boolean
description : allow repeat after end of quiz passing
name :
type : string
description : title of quiz
cfg :
type : string
description : serialized json of quiz graph
lim :
type : integer
description : max amount of passing
due :
type : integer
description : last time of new ansvers are valid
delay :
type : integer
description : time that given to customer for pass quiz
pausable :
type : boolean
description : allow user to pause quiz passing
items :
type : array
description : array of xhort items of quiestions for quiz
items :
type : object
properties :
id :
type : integer
description : identificator of question
title :
type : string
description : title of question
desc :
type : string
description : description of question html plaintext
typ :
type : string
description : type of question such as text, select, file, variant, images, varimg, emoji, date, number, page, rating
req :
type : boolean
description : mark question as required
p :
type : integer
description : page of quiz
c :
type : string
description : config of question. such as variants for select
UpdateResp :
description : id of new version of question
content :
'application/json' :
schema :
type : object
properties :
updated :
type : integer
DeactivateResp :
description : id of deleted structure
content :
'application/json' :
schema :
type : object
properties :
deactivated :
type : integer
schemas :
Answer :
type : object
properties :
Id :
type : integer
description : id ответа
Content :
type : string
description : контент ответа
QuestionId :
type : integer
description : id вопроса к которому ответ
QuizId :
type : integer
description : id опроса к которому ответ
Fingerprint :
type : string
description : fingerprint
Session :
type : string
description : сессия
Result :
type : boolean
description : true or false?
CreatedAt :
type : string
format : date-time
description : таймшап когда ответ создан
New :
type : boolean
description : новый ответ?
Deleted :
type : boolean
description : удален?
paths :
/liveness :
get :
description : Check that service is running
responses :
'200' :
description : healthcheck. if it non 200, that service is not running
/readiness :
get :
description : Check that service is ready for handle requests
responses :
'200' :
description : healthcheck. if it non 200, that service is not running
/quiz/create :
post :
description : Create quiz
requestBody :
$ref : '#/components/requestBodies/QuizCreateReq'
responses :
'201' :
$ref : '#/components/responses/QuizModel'
'422' :
description : name field should have less then 280 chars
content :
'application/json' :
schema :
type : string
default : name field should have less then 280 chars
'406' :
description : not acceptable input data
content :
'application/json' :
schema :
type : string
default : status on creating must be only draft,template,stop,start or due to time must be lesser then now
'409' :
description : not logical entry
content :
'application/json' :
schema :
type : string
default : you can pause quiz only if it has deadline for passing
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/quiz/getList :
post :
description : method for obtain page of quiz list for paginated list
requestBody :
$ref : '#/components/requestBodies/QuizGetListReq'
responses :
'200' :
$ref : '#/components/responses/QuizListGetResp'
'406' :
description : inappropriate status, allowed only '', 'stop','start','draft', 'template','timeout','offlimit'
content :
'application/json' :
schema :
type : string
default : inappropriate status
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/question/create :
post :
description : method for creating question for quiz
requestBody :
$ref : '#/components/requestBodies/QuestionCreateReq'
responses :
'200' :
$ref : '#/components/responses/QuestionModel'
'422' :
description : not valid data
content :
'application/json' :
schema :
type : string
default : title field should have less then 512 chars
'406' :
description : not acceptable data
content :
'application/json' :
schema :
type : string
default : type must be only test,button,file,checkbox,select, none
'424' :
description : failed relation to quiz
content :
'application/json' :
schema :
type : string
default : failed relation to quiz
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/question/getList :
post :
description : method for obtain page of question list for paginated list
requestBody :
$ref : '#/components/requestBodies/QuestionGetListReq'
responses :
'200' :
$ref : '#/components/responses/QuestionListGetResp'
'406' :
description : inappropriate type, allowed only '','test','none','file', 'button','select','checkbox'
content :
'application/json' :
schema :
type : string
default : inappropriate status
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/quiz/get :
post :
description : method for obtaining settings of quiz and question page
requestBody :
$ref : '#/components/requestBodies/GetQuizReq'
responses :
'200' :
$ref : '#/components/responses/QuizGetResp'
'206' :
$ref : '#/components/responses/QuizGetResp'
'400' :
description : you cat get quiz only if you know it's uuid
content :
'application/json' :
schema :
type : string
default : no quiz id provided
'411' :
description : limit should not be 0 when no aettings is need
content :
'application/json' :
schema :
type : string
default : no data requested
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'423' :
description : you can not get data for inactive quiz
content :
'application/json' :
schema :
type : string
default : quiz is inactive
'410' :
description : you can not get timeouted quiz
content :
'application/json' :
schema :
type : string
default : quiz timeouted
/question/edit :
patch :
description : method for update question. delete old question and create new with increment version
requestBody :
$ref : '#/components/requestBodies/UpdateQuestionReq'
responses :
'200' :
$ref : '#/components/responses/UpdateResp'
'424' :
description : return when no question id was send
content :
'application/json' :
schema :
type : string
default : need id of question for update
'422' :
description : too large new title
content :
'application/json' :
schema :
type : string
default : title field should have less then 512 chars
'406' :
description : inappropriate status sent
content :
'application/json' :
schema :
type : string
default : type must be only test,button,file,checkbox,select, none or empty string
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/quiz/edit :
patch :
description : method for update quiz
requestBody :
$ref : '#/components/requestBodies/UpdateQuizReq'
responses :
'200' :
$ref : '#/components/responses/UpdateResp'
'424' :
description : return when no quiz id was send
content :
'application/json' :
schema :
type : string
default : need id of quiz for update
'422' :
description : too large new title
content :
'application/json' :
schema :
type : string
default : name field should have less then 280 chars
'406' :
description : inappropriate status sent
content :
'application/json' :
schema :
type : string
default : status on creating must be only draft,template,stop,start or due to time must be lesser then now
'409' :
description : impossible state creating
content :
'application/json' :
schema :
type : string
default : you can pause quiz only if it has deadline for passing
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/question/copy :
post :
description : method for copy question to another quiz or to duplicate quiz
requestBody :
$ref : '#/components/requestBodies/CopyQuestionReq'
responses :
'201' :
$ref : '#/components/responses/UpdateResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'424' :
description : return when no question id was send
content :
'application/json' :
schema :
type : string
default : no id provided
/quiz/copy :
post :
description : method for copy question to another quiz or to duplicate quiz
requestBody :
$ref : '#/components/requestBodies/CopyQuizReq'
responses :
'201' :
$ref : '#/components/responses/UpdateResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'424' :
description : return when no quiz id was send
content :
'application/json' :
schema :
type : string
default : no id provided
/quiz/history :
post :
description : method for obtain page of quiz history for paginated list
requestBody :
$ref : '#/components/requestBodies/GetQuizHistoryReq'
responses :
'200' :
description : page of history quiz changes
content :
'application/json' :
schema :
type : array
items :
$ref : '#/components/responses/QuizModel'
'424' :
description : no id provided
content :
'application/json' :
schema :
type : string
default : no id provided
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/question/history :
post :
description : method for obtain page of question history for paginated list
requestBody :
$ref : '#/components/requestBodies/GetQuizHistoryReq'
responses :
'200' :
description : page of history question changes
content :
'application/json' :
schema :
type : array
items :
$ref : '#/components/responses/QuestionModel'
'424' :
description : no id provided
content :
'application/json' :
schema :
type : string
default : no id provided
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/quiz/delete :
delete :
description : method for mark quiz as deleted
requestBody :
$ref : '#/components/requestBodies/DeactivateReq'
responses :
'200' :
$ref : '#/components/responses/DeactivateResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'424' :
description : return when no quiz id was send
content :
'application/json' :
schema :
type : string
default : no id provided
/quiz/archive :
patch :
description : method for mark quiz as archived
requestBody :
$ref : '#/components/requestBodies/DeactivateReq'
responses :
'200' :
$ref : '#/components/responses/DeactivateResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'424' :
description : return when no quiz id was send
content :
'application/json' :
schema :
type : string
default : no id provided
/question/delete :
delete :
description : method for mark question as deleted
requestBody :
$ref : '#/components/requestBodies/DeactivateReq'
responses :
'200' :
$ref : '#/components/responses/DeactivateResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
'424' :
description : return when no question id was send
content :
'application/json' :
schema :
type : string
default : no id provided
/results/getResults/{quizId}:
post :
description : получение списка результатов респондентов проходивших опрос
requestBody :
$ref : '#/components/requestBodies/GetQuizResultsReq'
responses :
'200' :
$ref : '#/components/responses/GetQuizResultsResp'
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/results/delete/{resultId}:
delete :
description : мягкое удаление результата. не удаляет, но помечает удаленным
responses :
'200' :
description : если все хорошо,то и отправлять нечего
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/results/seen :
patch :
description : устаревает результаты, т.е . делает их new = false
requestBody :
content :
'application/json' :
schema :
type : object
properties :
answers :
description : список айдишников результатов, которые надо устареть
type : array
items :
type : integer
responses :
'200' :
description : если все хорошо,то и отправлять нечего
'500' :
description : not mentioned error
content :
'application/json' :
schema :
type : string
default : if you get any content string send it to developer
/results/{quizID}/export:
post :
summary : экспорт результатов quiz в csv
description : экспорт результатов quiz в csv
parameters :
- in : path
name : quizID
description : id quiz, из которого нужно экспортировать результаты
required : true
schema :
type : integer
format : uint64
requestBody :
required : false
content :
application/json :
schema :
type : object
properties :
to :
type : string
format : date
description : Дата окончания диапазона времени для экспорта результатов
from :
type : string
format : date
description : Дата начала временного диапазона для экспорта результатов
new :
type : boolean
description : Экспортировать ли только новые результаты?
responses :
"200" :
description : CSV-файл, содержащий результаты теста
content :
text/csv :
schema :
type : string
format : binary
"400" :
description : Bad request. Invalid quiz ID or request body.
"500" :
description : Internal server error. Failed to export quiz results.
/result/{resultID}:
get :
summary : возвращает все ответы по resultID (answerID) в рамках сессии resultID
description : возвращает все ответы по resultID (answerID) в рамках сессии resultID
parameters :
- in : path
name : resultID
required : true
description : resultID (answerID), в рамках сессии которого нужно вернуть все ответы
schema :
type : string
responses :
'200' :
description : Successful
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Answer'
'400' :
description : Invalid result ID provided
content :
application/json :
schema :
type : object
properties :
message :
type : string
2024-03-25 16:03:04 +00:00
'500' :
description : Failed to retrieve result answers
content :
application/json :
schema :
type : object
properties :
message :
type : string
/statistic/{quizID}/questions:
post :
description : метод получения статистики по конкретным вопросам
parameters :
- in : path
name : quizID
required : true
description : quizID, в рамках которого надо вернуть статистику
schema :
type : string
requestBody :
$ref : '#/components/requestBodies/GetStatisticsReq'
responses :
'200' :
$ref : '#/components/responses/GetQuestionStatsResp'
'400' :
description : Invalid request
content :
application/json :
schema :
type : object
properties :
message :
type : string
'500' :
description : Failed to retrieve result answers
content :
application/json :
schema :
type : object
properties :
message :
type : string
/statistic/{quizID}/general:
post :
description : метод получения основной статистики
parameters :
- in : path
name : quizID
required : true
description : quizID, в рамках которого надо вернуть статистику
schema :
type : string
requestBody :
$ref : '#/components/requestBodies/GetStatisticsReq'
responses :
'200' :
$ref : '#/components/responses/GetGeneralStatsResp'
'400' :
description : Invalid request
content :
application/json :
schema :
type : object
properties :
message :
type : string
'500' :
description : Failed to retrieve result answers
content :
application/json :
schema :
type : object
properties :
message :
type : string
/statistic/{quizID}/devices:
post :
description : метод получения статистики по устройствам
parameters :
- in : path
name : quizID
required : true
description : quizID, в рамках которого надо вернуть статистику
schema :
type : string
requestBody :
$ref : '#/components/requestBodies/GetStatisticsReq'
responses :
'200' :
$ref : '#/components/responses/GetDevicesStatsResp'
'400' :
description : Invalid request
content :
application/json :
schema :
type : object
properties :
message :
type : string
'500' :
description : Failed to retrieve result answers
content :
application/json :
schema :
type : object
properties :
message :
type : string
/statistic :
post :
description : метод получения общей статистики по опросам, регистрациям и ответов с result = true за указанный промежуток времени
requestBody :
$ref : '#/components/requestBodies/GetStatisticsReq'
responses :
'200' :
$ref : '#/components/responses/GetStatisticResp'
'400' :
description : Invalid request
content :
application/json :
schema :
type : object
properties :
message :
type : string
2024-03-13 18:23:46 +00:00
'500' :
description : Failed to retrieve result answers
content :
application/json :
schema :
type : object
properties :
message :
2024-03-19 17:29:34 +00:00
type : string