Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Docs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Registry
Registry
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Competify
Docs
Commits
e20ad815
Commit
e20ad815
authored
Jul 13, 2018
by
Rosana Aurélio
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[API] Atualização dos schemas para convertendo os arquivos de yaml para json.
parent
c31cf232
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1727 additions
and
149 deletions
+1727
-149
Competify.API.yaml
Api/Competify.API.yaml
+2
-7
Assessment.json
Api/components/schemas/Assessment.json
+200
-0
Auth.json
Api/components/schemas/Auth.json
+66
-0
Competifier.json
Api/components/schemas/Competifier.json
+140
-0
Exam.json
Api/components/schemas/Exam.json
+217
-0
Exam.yaml
Api/components/schemas/Exam.yaml
+217
-140
Phase.json
Api/components/schemas/Phase.json
+409
-0
Submission.json
Api/components/schemas/Submission.json
+239
-0
Submission.yaml
Api/components/schemas/Submission.yaml
+2
-2
Subscription.json
Api/components/schemas/Subscription.json
+235
-0
No files found.
Api/Competify.API.yaml
View file @
e20ad815
...
...
@@ -122,11 +122,7 @@ paths:
schema
:
type
:
array
items
:
-
$ref
:
>-
https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas.yaml/#/Competition
'
500'
:
$ref
:
>-
https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/responses.yaml/#/InternalServerError
$ref
:
'
https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas.yaml/#/Competition'
post
:
security
:
-
bearerAuth
:
[]
...
...
@@ -181,7 +177,7 @@ paths:
content
:
application/json
:
schema
:
type
:
boolean
$ref
:
'
https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas.yaml/#/Competition'
parameters
:
-
name
:
competitionId
in
:
path
...
...
@@ -214,5 +210,4 @@ paths:
schema
:
format
:
int32
type
:
integer
Api/components/schemas/Assessment.json
0 → 100644
View file @
e20ad815
{
"Assessment"
:
{
"required"
:
[
"id"
,
"title"
,
"showResult"
,
"showAnswerKey"
,
"type"
,
"locationType"
,
"status"
],
"properties"
:
{
"id"
:
{
"description"
:
"Object identifier"
,
"type"
:
"integer"
},
"title"
:
{
"type"
:
"string"
},
"location"
:
{
"description"
:
null
,
"type"
:
"string"
},
"exam"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Exam"
},
"showResult"
:
{
"type"
:
"boolean"
,
"description"
:
"Boolean indicating if the result is already avialable to exhibition"
},
"showAnswerKey"
:
{
"type"
:
"boolean"
,
"description"
:
"Boolean indicating if the answerKey is already available to exhibition"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"VIRTUAL"
,
"HANDMADE"
]
},
"locationType"
:
{
"type"
:
"string"
,
"enum"
:
[
"ONLINE"
,
"ON_SITE"
]
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"PREP"
,
"SUBMISSION"
,
"EVALUATION"
]
},
"assignments"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Assignment"
}
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"VIRTUAL"
:
"#/VirtualAssessment"
,
"HANDMADE"
:
"#/HandmadeAssessment"
}
}
},
"AssessmentEvent"
:
{
"required"
:
[
"timestamp"
,
"type"
],
"properties"
:
{
"timestamp"
:
{
"type"
:
"string"
},
"desc"
:
{
"type"
:
"string"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"ASSESSMENT_CREATED"
,
"EXAM_UPDATED"
,
"SUBMISSION_ACCEPTANCE_OPENED"
,
"SUBMISSION_ACCEPTANCE_CLOSED"
,
"EVALUATION_PERFORMED"
,
"ANSWER_KEY_ACCESS_ENABLED"
,
"ANSWER_KEY_ACCESS_DISABLED"
,
"EVALUATIONS_ACCESS_ENABLED"
,
"EVALUATIONS_ACCESS_DISABLED"
,
"ASSESSMENT_CLOSED"
]
}
}
},
"Assignment"
:
{
"required"
:
"status"
,
"properties"
:
{
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"PENDING"
,
"STARTED"
,
"DONE"
,
"EVALUATED"
]
},
"drafts"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Submission.yaml/#/VirtualAssessmentsSubmissionsDraft"
}
},
"submissions"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#AssessmentSubmission"
}
},
"currentSubmissions"
:
{
"$ref"
:
"#AssessmentSubmission"
},
"assessment"
:
{
"$ref"
:
"#Assessment"
},
"competifier"
:
{
"$ref"
:
"#Competifier"
}
}
},
"HandmadeAssessment"
:
{
"required"
:
[
"submitterType"
],
"allOf"
:
[
{
"$ref"
:
"#/Assessment"
},
{
"type"
:
"object"
,
"properties"
:
{
"submitterType"
:
{
"type"
:
"string"
,
"enum"
:
[
"ADMIN"
,
"ADMIN_OR_COMPETIFIER"
]
}
}
}
]
},
"ScheduledEvent"
:
{
"required"
:
[
"id"
,
"startsAt"
,
"endsAt"
],
"properties"
:
{
"id"
:
{
"description"
:
"The object identification"
,
"type"
:
"integer"
},
"startsAt"
:
{
"format"
:
"date-time"
,
"description"
:
"The time of the begining of the assessment"
,
"type"
:
"string"
},
"endsAt"
:
{
"format"
:
"date-time"
,
"description"
:
"The time of the ending of the assessment"
,
"type"
:
"string"
}
}
},
"VirtualAssessment"
:
{
"required"
:
[
"enforceSequence"
],
"allOf"
:
[
{
"$ref"
:
"#/Assessment"
},
{
"type"
:
"object"
,
"properties"
:
{
"enforceSequence"
:
{
"type"
:
"boolean"
,
"description"
:
"Boolean indicating if the assessment must be done in order"
}
}
}
]
}
}
\ No newline at end of file
Api/components/schemas/Auth.json
0 → 100644
View file @
e20ad815
{
"User"
:
{
"required"
:
[
"username"
,
"password"
,
"email"
],
"properties"
:
{
"username"
:
{
"type"
:
"string"
},
"password"
:
{
"type"
:
"string"
},
"email"
:
{
"type"
:
"string"
},
"userProfile"
:
{
"type"
:
"string"
,
"enum"
:
[
"SYS_ADMIN"
,
"COMPETITION_ADMIN"
,
"COMPETITOR"
]
}
}
},
"Access"
:
{
"required"
:
[
"user"
],
"properties"
:
{
"user"
:
{
"$ref"
:
"#/user"
},
"resource"
:
{
"$ref"
:
"#/resource"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"MASTER"
,
"HOST"
,
"USER"
,
"ANONYM"
]
}
}
},
"Resource"
:
{
"required"
:
[
"resourceId"
],
"properties"
:
{
"resourceId"
:
{
"type"
:
"string"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"COMPETITION"
]
}
}
}
}
\ No newline at end of file
Api/components/schemas/Competifier.json
0 → 100644
View file @
e20ad815
{
"Competifier"
:
{
"required"
:
[
"type"
,
"user"
,
"competition"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"SOLO"
,
"TEAM"
]
},
"user"
:
{
"type"
:
"number"
},
"email"
:
{
"type"
:
"string"
},
"registration"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Submission.yaml/#/Submission"
},
"tags"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Tag"
}
},
"participations"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Phase.yaml/#/PhaseParticipation"
}
},
"competition"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Phase.yaml/#/Competition"
},
"assignments"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
}
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"SOLO"
:
"#/SoloCompetifier"
,
"TEAM"
:
"#/TeamCompetifier"
}
}
},
"Participant"
:
{
"required"
:
[
"firstName"
,
"email"
],
"properties"
:
{
"firstName"
:
{
"type"
:
"string"
},
"lastName"
:
{
"type"
:
"string"
},
"email"
:
{
"type"
:
"string"
},
"tags"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Tag"
}
}
}
},
"SoloCompetifier"
:
{
"required"
:
[
"firstName"
],
"allOf"
:
[
{
"$ref"
:
"#/Competifier"
},
{
"type"
:
"object"
,
"properties"
:
{
"firstName"
:
{
"type"
:
"string"
},
"lastName"
:
{
"type"
:
"string"
}
}
}
]
},
"TeamCompetifier"
:
{
"required"
:
[
"name"
],
"allOf"
:
[
{
"$ref"
:
"#/Competifier"
},
{
"type"
:
"object"
,
"properties"
:
{
"name"
:
{
"type"
:
"string"
},
"leader"
:
{
"$ref"
:
"#/Participant"
},
"participants"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Participant"
}
}
}
}
]
},
"Tag"
:
{
"required"
:
[
"label"
,
"value"
],
"properties"
:
{
"label"
:
{
"type"
:
"string"
},
"value"
:
{
"type"
:
"string"
}
}
}
}
\ No newline at end of file
Api/components/schemas/Exam.json
0 → 100644
View file @
e20ad815
{
"Alternative"
:
{
"required"
:
[
"order"
,
"statement"
],
"properties"
:
{
"order"
:
{
"type"
:
"number"
},
"statement"
:
{
"type"
:
"string"
}
}
},
"Exam"
:
{
"required"
:
[
"id"
,
"title"
,
"type"
,
"cover"
,
"questions"
,
"groups"
],
"properties"
:
{
"id"
:
{
"description"
:
"Object identifier"
,
"type"
:
"integer"
},
"title"
:
{
"type"
:
"string"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"SUBJECTIVE-ONLY"
,
"OBJECTIVE-ONLY"
,
"MIXED"
]
},
"cover"
:
{
"$ref"
:
"#/ExamCover"
},
"groups"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/QuestionGroup"
}
},
"questions"
:
{
"type"
:
"array"
,
"items"
:
{
"oneOf"
:
[
{
"$ref"
:
"#/SubjectiveQuestion"
},
{
"$ref"
:
"#/ObjectiveQuestion"
}
]
}
}
}
},
"ExamCover"
:
{
"required"
:
[
"id"
,
"content"
],
"properties"
:
{
"content"
:
{
"type"
:
"string"
},
"id"
:
{
"type"
:
"integer"
}
}
},
"ExamQuestionComplaint"
:
{
"properties"
:
{
"timestamp"
:
{
"format"
:
"date-time"
,
"type"
:
"string"
},
"text"
:
{
"type"
:
"string"
},
"question"
:
{
"$ref"
:
"#/Question"
}
}
},
"ObjectiveQuestion"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Question"
},
{
"type"
:
"object"
,
"properties"
:
{
"answerKey"
:
{
"$ref"
:
"#/Alternative"
},
"alternatives"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Alternative"
}
}
}
}
]
},
"Question"
:
{
"required"
:
[
"id"
,
"order"
,
"type"
,
"status"
,
"group"
,
"statement"
],
"properties"
:
{
"id"
:
{
"description"
:
"object identifier of this Question"
,
"type"
:
"integer"
},
"order"
:
{
"description"
:
"Position of this Question in this Exam"
,
"type"
:
"integer"
},
"weight"
:
{
"format"
:
"float"
,
"description"
:
"Weight associated with this Question"
,
"type"
:
"number"
},
"type"
:
{
"description"
:
"Inheritance type identifcation"
,
"type"
:
"string"
,
"enum"
:
[
"SUBJECTIVE"
,
"OBJECTIVE"
]
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"ACTIVE"
,
"CANCELED"
]
},
"group"
:
{
"description"
:
"Group for which this given Question belongs in this Exam"
,
"type"
:
"integer"
},
"statement"
:
{
"type"
:
"string"
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"SUBJECTIVE"
:
"#/SubjectiveQuestion"
,
"OBJECTIVE"
:
"#/ObjectiveQuestion"
}
}
},
"QuestionGroup"
:
{
"required"
:
[
"id"
,
"label"
,
"weight"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"label"
:
{
"type"
:
"string"
},
"weight"
:
{
"format"
:
"float"
,
"type"
:
"number"
}
}
},
"QuestionStatement"
:
{
"required"
:
[
"id"
,
"content"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"content"
:
{
"type"
:
"string"
}
}
},
"SubjectiveQuestion"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Question"
},
{
"type"
:
"object"
,
"properties"
:
{
"answerKey"
:
{
"format"
:
"string"
,
"type"
:
"string"
}
}
}
]
}
}
\ No newline at end of file
Api/components/schemas/Exam.yaml
View file @
e20ad815
Alternative
:
required
:
-
order
-
statement
properties
:
order
:
type
:
number
statement
:
type
:
string
Exam
:
required
:
-
id
-
title
-
type
-
cover
-
questions
-
groups
properties
:
id
:
description
:
Object identifier
type
:
integer
title
:
type
:
string
type
:
type
:
string
enum
:
-
SUBJECTIVE-ONLY
-
OBJECTIVE-ONLY
-
MIXED
cover
:
$ref
:
'
#/ExamCover'
groups
:
type
:
array
items
:
$ref
:
'
#/QuestionGroup'
questions
:
type
:
array
items
:
oneOf
:
-
$ref
:
'
#/SubjectiveQuestion'
-
$ref
:
'
#/ObjectiveQuestion'
ExamCover
:
required
:
-
id
-
content
properties
:
content
:
type
:
string
id
:
type
:
integer
ExamQuestionComplaint
:
properties
:
timestamp
:
format
:
date-time
type
:
string
text
:
type
:
string
question
:
$ref
:
'
#/Question'
ObjectiveQuestion
:
allOf
:
-
$ref
:
'
#/Question'
-
type
:
object
properties
:
answerKey
:
$ref
:
'
#/Alternative'
alternatives
:
type
:
array
items
:
$ref
:
'
#/Alternative'
Question
:
required
:
-
id
-
order
-
type
-
status
-
group
-
statement
properties
:
id
:
description
:
object identifier of this Question
type
:
integer
order
:
description
:
Position of this Question in this Exam
type
:
integer
weight
:
format
:
float
description
:
Weight associated with this Question
type
:
number
type
:
description
:
Inheritance type identifcation
type
:
string
enum
:
-
SUBJECTIVE
-
OBJECTIVE
status
:
type
:
string
enum
:
-
ACTIVE
-
CANCELED
group
:
description
:
Group for which this given Question belongs in this Exam
type
:
integer
statement
:
type
:
string
discriminator
:
propertyName
:
type
mapping
:
SUBJECTIVE
:
'
#/SubjectiveQuestion'
OBJECTIVE
:
'
#/ObjectiveQuestion'
QuestionGroup
:
required
:
-
id
-
label
-
weight
properties
:
id
:
type
:
integer
label
:
type
:
string
weight
:
format
:
float
type
:
number
QuestionStatement
:
required
:
-
id
-
content
properties
:
id
:
type
:
integer
content
:
type
:
string
SubjectiveQuestion
:
allOf
:
-
$ref
:
'
#/Question'
-
type
:
object
properties
:
answerKey
:
format
:
string
type
:
string
{
"
Alternative"
:
{
"
required"
:
[
"
order"
,
"
statement"
],
"
properties"
:
{
"
order"
:
{
"
type"
:
"
number"
},
"
statement"
:
{
"
type"
:
"
string"
}
}
},
"
Exam"
:
{
"
required"
:
[
"
id"
,
"
title"
,
"
type"
,
"
cover"
,
"
questions"
,
"
groups"
],
"
properties"
:
{
"
id"
:
{
"
description"
:
"
Object
identifier"
,
"
type"
:
"
integer"
},
"
title"
:
{
"
type"
:
"
string"
},
"
type"
:
{
"
type"
:
"
string"
,
"
enum"
:
[
"
SUBJECTIVE-ONLY"
,
"
OBJECTIVE-ONLY"
,
"
MIXED"
]
},
"
cover"
:
{
"
$ref"
:
"
#/ExamCover"
},
"
groups"
:
{
"
type"
:
"
array"
,
"
items"
:
{
"
$ref"
:
"
#/QuestionGroup"
}
},
"
questions"
:
{
"
type"
:
"
array"
,
"
items"
:
{
"
oneOf"
:
[
{
"
$ref"
:
"
#/SubjectiveQuestion"
},
{
"
$ref"
:
"
#/ObjectiveQuestion"
}
]
}
}
}
},
"
ExamCover"
:
{
"
required"
:
[
"
id"
,
"
content"
],
"
properties"
:
{
"
content"
:
{
"
type"
:
"
string"
},
"
id"
:
{
"
type"
:
"
integer"
}
}
},
"
ExamQuestionComplaint"
:
{
"
properties"
:
{
"
timestamp"
:
{
"
format"
:
"
date-time"
,
"
type"
:
"
string"
},
"
text"
:
{
"
type"
:
"
string"
},
"
question"
:
{
"
$ref"
:
"
#/Question"
}
}
},
"
ObjectiveQuestion"
:
{
"
allOf"
:
[
{
"
$ref"
:
"
#/Question"
},
{
"
type"
:
"
object"
,
"
properties"
:
{
"
answerKey"
:
{
"
$ref"
:
"
#/Alternative"
},
"
alternatives"
:
{
"
type"
:
"
array"
,
"
items"
:
{
"
$ref"
:
"
#/Alternative"
}
}
}
}
]
},
"
Question"
:
{
"
required"
:
[
"
id"
,
"
order"
,
"
type"
,
"
status"
,
"
group"
,
"
statement"
],
"
properties"
:
{
"
id"
:
{
"
description"
:
"
object
identifier
of
this
Question"
,
"
type"
:
"
integer"
},
"
order"
:
{
"
description"
:
"
Position
of
this
Question
in
this
Exam"
,
"
type"
:
"
integer"
},
"
weight"
:
{
"
format"
:
"
float"
,
"
description"
:
"
Weight
associated
with
this
Question"
,
"
type"
:
"
number"
},
"
type"
:
{
"
description"
:
"
Inheritance
type
identifcation"
,
"
type"
:
"
string"
,
"
enum"
:
[
"
SUBJECTIVE"
,
"
OBJECTIVE"
]
},
"
status"
:
{
"
type"
:
"
string"
,
"
enum"
:
[
"
ACTIVE"
,
"
CANCELED"
]
},
"
group"
:
{
"
description"
:
"
Group
for
which
this
given
Question
belongs
in
this
Exam"
,
"
type"
:
"
integer"
},
"
statement"
:
{
"
type"
:
"
string"
}
},
"
discriminator"
:
{
"
propertyName"
:
"
type"
,
"
mapping"
:
{
"
SUBJECTIVE"
:
"
#/SubjectiveQuestion"
,
"
OBJECTIVE"
:
"
#/ObjectiveQuestion"
}
}
},
"
QuestionGroup"
:
{
"
required"
:
[
"
id"
,
"
label"
,
"
weight"
],
"
properties"
:
{
"
id"
:
{
"
type"
:
"
integer"
},
"
label"
:
{
"
type"
:
"
string"
},
"
weight"
:
{
"
format"
:
"
float"
,
"
type"
:
"
number"
}
}
},
"
QuestionStatement"
:
{
"
required"
:
[
"
id"
,
"
content"
],
"
properties"
:
{
"
id"
:
{
"
type"
:
"
integer"
},
"
content"
:
{
"
type"
:
"
string"
}
}
},
"
SubjectiveQuestion"
:
{
"
allOf"
:
[
{
"
$ref"
:
"
#/Question"
},
{
"
type"
:
"
object"
,
"
properties"
:
{
"
answerKey"
:
{
"
format"
:
"
string"
,
"
type"
:
"
string"
}
}
}
]
}
}
\ No newline at end of file
Api/components/schemas/Phase.json
0 → 100644
View file @
e20ad815
{
"AssessmentConclusionTime"
:
{
"allOf"
:
[
{
"$ref"
:
"#/TieBreakStrategy"
},
{
"type"
:
"object"
}
]
},
"AssessmentPriority"
:
{
"required"
:
[
"priority"
],
"allOf"
:
{
"$ref"
:
"#/TieBreakStrategy"
,
"type"
:
"object"
,
"properties"
:
{
"priority"
:
{
"type"
:
"integer"
}
}
}
},
"AssessmentPriorityStrategy"
:
{
"properties"
:
{
"priorities"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/AssessmentPriority"
}
]
}
}
},
"BestRanked"
:
{
"required"
:
[
"number"
],
"properties"
:
{
"number"
:
{
"type"
:
"number"
},
"tieBreakStrategies"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/TieBreakStrategy"
}
]
}
}
},
"ClassificationStrategy"
:
{
"required"
:
[
"type"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"BEST_RANKED"
,
"MINIMUM_PERFORMANCE"
]
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"BEST_RANKED"
:
"#/BestRanked"
,
"MINIMUM_PERFORMANCE"
:
"#/MinimumPerformance"
}
}
},
"EvaluationFormula"
:
{
"required"
:
[
"expression"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"expression"
:
{
"type"
:
"string"
}
}
},
"GroupPriority"
:
{
"properties"
:
{
"priority"
:
{
"type"
:
"number"
},
"questionGroup"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/QuestionGroup"
}
}
},
"MinimumPerformance"
:
{
"required"
:
[
"cutOffMark"
],
"allOf"
:
[
{
"$ref"
:
"#/ClassificationStrategy"
},
{
"type"
:
"object"
,
"properties"
:
{
"cutOffMark"
:
{
"type"
:
"number"
}
}
}
]
},
"Phase"
:
{
"required"
:
[
"id"
,
"label"
,
"status"
,
"evaluationFormula"
,
"classificationStrategy"
,
"competition"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"label"
:
{
"type"
:
"string"
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"PREP"
,
"ONGOING"
,
"EVALUATION"
,
"CLOSED"
]
},
"previous"
:
{
"$ref"
:
"#/Phase"
},
"next"
:
{
"$ref"
:
"#/Phase"
},
"evaluationFormula"
:
{
"$ref"
:
"#/EvaluationFormula"
},
"classificationStrategy"
:
{
"$ref"
:
"#/ClassificationStrategy"
},
"ranking"
:
{
"$ref"
:
"#/Ranking"
},
"assessments"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assessment"
}
]
},
"evaluations"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/Ranking"
}
]
},
"events"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/PhaseEvent"
}
]
},
"participations"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/PhaseParticipation"
}
]
},
"competition"
:
{
"$ref"
:
"#/Competition"
}
}
},
"PhaseEvent"
:
{
"required"
:
[
"timestamp"
,
"descr"
,
"type"
],
"properties"
:
{
"timestamp"
:
{
"type"
:
"integer"
},
"descr"
:
{
"type"
:
"string"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"PHASE_CREATED"
,
"PHASE_STARTED"
,
"EVALUATION_FORMULA_UPDATED"
,
"RANKING_EVALUATED"
,
"PHASE_CLOSED"
]
}
}
},
"PhaseParticipation"
:
{
"properties"
:
{
"competifier"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Competifier.yaml/#/Competifier"
},
"phase"
:
{
"$ref"
:
"#/Phase"
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"ACTIVE"
,
"APPROVED"
,
"DISQUALIFIED"
,
"REJECTED"
]
},
"assignments"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
}
]
}
}
},
"QuestionGroupPriorityStrategy"
:
{
"allOf"
:
{
"$ref"
:
"#/TieBreakStrategy"
,
"type"
:
"object"
,
"properties"
:
{
"priorities"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/GroupPriority"
}
]
}
}
}
},
"Rank"
:
{
"required"
:
[
"position"
,
"grade"
,
"status"
],
"properties"
:
{
"position"
:
{
"type"
:
"integer"
},
"grade"
:
{
"type"
:
"number"
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"QUALIFIED"
,
"DISQUALIFIED"
]
},
"participation"
:
{
"$ref"
:
"#/PhaseParticipation"
}
}
},
"Ranking"
:
{
"required"
:
[
"id"
,
"timestamp"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"evaluationFormula"
:
{
"$ref"
:
"#/EvaluationFormula"
},
"positions"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Rank"
}
},
"classificationStrategy"
:
{
"$ref"
:
"#/ClassificationStrategy"
},
"qualified"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Rank"
}
}
}
},
"TieBreakStrategy"
:
{
"required"
:
[
"type"
],
"properties"
:
{
"id"
:
{
"type"
:
"integer"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"ASSESSMENT_PRIORITY"
,
"QUESTION_PRIORITY"
,
"ASSESSMENT_CONCLUSION_TIME"
]
},
"priority"
:
{
"type"
:
"integer"
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"ASSESSMENT_PRIORITY"
:
"#/AssessmentPriority"
,
"QUESTION_PRIORITY"
:
"#/QuestionGroupPriorityStrategy"
,
"ASSESSMENT_CONCLUSION_TIME"
:
"#/AssessmentConclusionTime"
}
}
},
"Competition"
:
{
"required"
:
[
"id"
,
"uri"
,
"name"
,
"status"
,
"subscription"
],
"properties"
:
{
"uri"
:
{
"type"
:
"string"
},
"name"
:
{
"type"
:
"string"
},
"description"
:
{
"type"
:
"string"
},
"status"
:
{
"type"
:
"string"
,
"enum"
:
[
"ACTIVE"
,
"INACTIVE"
]
},
"subscription"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Subscription.yaml/#/Subscription"
},
"exams"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Exam"
}
]
},
"phase"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"#/Phase"
}
]
},
"finalPhase"
:
{
"$ref"
:
"#/Phase"
},
"initialPhase"
:
{
"$ref"
:
"#/Phase"
},
"currentPhase"
:
{
"$ref"
:
"#/Phase"
},
"competifiers"
:
{
"type"
:
"array"
,
"items"
:
[
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Competifier.yaml/#/Competifier"
}
]
}
}
}
}
\ No newline at end of file
Api/components/schemas/Submission.json
0 → 100644
View file @
e20ad815
{
"Answer"
:
{
"required"
:
[
"type"
,
"question"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"SUBJECTIVE"
,
"OBJECTIVE"
]
},
"question"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question"
}
}
},
"AnswerGrade"
:
{
"required"
:
[
"grade"
,
"question"
],
"properties"
:
{
"grade"
:
{
"format"
:
"float"
,
"type"
:
"number"
},
"question"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question"
}
}
},
"AssessmentSubmission"
:
{
"required"
:
[
"type"
],
"properties"
:
{
"lastUpdate"
:
{
"type"
:
"number"
,
"description"
:
"Last time this submission was modified"
},
"assignment"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"VIRTUAL"
,
"HANDMADE"
]
}
},
"discriminator"
:
{
"propertyName"
:
"type"
}
},
"AssessmentSubmissionEvaluation"
:
{
"required"
:
[
"timestamp"
,
"submission"
],
"properties"
:
{
"timestamp"
:
{
"type"
:
"integer"
},
"grade"
:
{
"type"
:
"number"
,
"format"
:
"float"
},
"submission"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/AssessmentSubmission"
},
"grades"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/AnswerGrade"
}
}
}
},
"HandmadeAssessmentSubmission"
:
{
"allOf"
:
[
{
"$ref"
:
"#/AssessmentSubmission"
},
{
"type"
:
"object"
,
"required"
:
[
"uploadUri"
],
"properties"
:
{
"uploadUri"
:
{
"type"
:
"string"
}
}
}
]
},
"ObjectiveAnswer"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Answer"
},
{
"type"
:
"object"
,
"required"
:
[
"alternativeKey"
],
"properties"
:
{
"alternativeKey"
:
{
"type"
:
"string"
}
}
}
]
},
"SubjectiveAnswer"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Answer"
},
{
"type"
:
"object"
,
"required"
:
[
"freeText"
],
"properties"
:
{
"freeText"
:
{
"type"
:
"string"
}
}
}
]
},
"VirtualAssessmentSubmission"
:
{
"allOf"
:
[
{
"$ref"
:
"#/AssessmentSubmission"
},
{
"type"
:
"object"
,
"required"
:
[
"startedAt"
],
"properties"
:
{
"startedAt"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
},
"finishedAt"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
},
"answers"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Answer"
}
},
"draft"
:
{
"$ref"
:
"#/VirtualAssessmentSubmissionDraft"
}
}
}
]
},
"VirtualAssessmentSubmissionDraft"
:
{
"required"
:
[
"createdAt"
,
"content"
,
"assignment"
],
"properties"
:
{
"createdAt"
:
{
"format"
:
"date-time"
,
"type"
:
"string"
},
"updatedAt"
:
{
"format"
:
"date-time"
,
"type"
:
"string"
},
"content"
:
{
"type"
:
"string"
},
"assessment"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
}
}
},
"SubmissionSection"
:
{
"required"
:
[
"type"
,
"template"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"PARTICIPANT"
,
"TEAM"
]
},
"answers"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/answer"
}
},
"template"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Subscription.yaml/#/FormTemplate"
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"PARTICIPANT"
:
"#/ParticipantSubmissionSection"
,
"TEAM"
:
"#/TeamSubmissionSection"
}
}
},
"TeamSubmissionSection"
:
{
"allOf"
:
[
{
"type"
:
"object"
},
{
"$ref"
:
"#/SubmissionSection"
}
]
},
"ParticipantSubmissionSection"
:
{
"allOf"
:
{
"type"
:
"object"
,
"$ref"
:
"#/SubmissionSection"
}
}
}
\ No newline at end of file
Api/components/schemas/Submission.yaml
View file @
e20ad815
...
...
@@ -137,8 +137,8 @@ SubmissionSection:
TEAM
:
'
#/TeamSubmissionSection'
TeamSubmissionSection
:
allOf
:
-
type
:
object
-
$ref
:
'
#/SubmissionSection'
type
:
object
$ref
:
'
#/SubmissionSection'
ParticipantSubmissionSection
:
allOf
:
type
:
object
...
...
Api/components/schemas/Subscription.json
0 → 100644
View file @
e20ad815
{
"Answer"
:
{
"required"
:
[
"type"
,
"question"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"SUBJECTIVE"
,
"OBJECTIVE"
]
},
"question"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question"
}
}
},
"AnswerGrade"
:
{
"required"
:
[
"grade"
,
"question"
],
"properties"
:
{
"grade"
:
{
"format"
:
"float"
,
"type"
:
"number"
},
"question"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question"
}
}
},
"AssessmentSubmission"
:
{
"required"
:
[
"type"
],
"properties"
:
{
"lastUpdate"
:
{
"type"
:
"number"
,
"description"
:
"Last time this submission was modified"
},
"assignment"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
},
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"VIRTUAL"
,
"HANDMADE"
]
}
},
"discriminator"
:
{
"propertyName"
:
"type"
}
},
"AssessmentSubmissionEvaluation"
:
{
"required"
:
[
"timestamp"
,
"submission"
],
"properties"
:
{
"timestamp"
:
{
"type"
:
"integer"
},
"grade"
:
{
"type"
:
"number"
,
"format"
:
"float"
},
"submission"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/AssessmentSubmission"
},
"grades"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/AnswerGrade"
}
}
}
},
"HandmadeAssessmentSubmission"
:
{
"allOf"
:
[
{
"$ref"
:
"#/AssessmentSubmission"
},
{
"type"
:
"object"
,
"required"
:
[
"uploadUri"
],
"properties"
:
{
"uploadUri"
:
{
"type"
:
"string"
}
}
}
]
},
"ObjectiveAnswer"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Answer"
},
{
"type"
:
"object"
,
"required"
:
[
"alternativeKey"
],
"properties"
:
{
"alternativeKey"
:
{
"type"
:
"string"
}
}
}
]
},
"SubjectiveAnswer"
:
{
"allOf"
:
[
{
"$ref"
:
"#/Answer"
},
{
"type"
:
"object"
,
"required"
:
[
"freeText"
],
"properties"
:
{
"freeText"
:
{
"type"
:
"string"
}
}
}
]
},
"VirtualAssessmentSubmission"
:
{
"allOf"
:
[
{
"$ref"
:
"#/AssessmentSubmission"
},
{
"type"
:
"object"
,
"required"
:
[
"startedAt"
],
"properties"
:
{
"startedAt"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
},
"finishedAt"
:
{
"type"
:
"string"
,
"format"
:
"date-time"
},
"answers"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/Answer"
}
},
"draft"
:
{
"$ref"
:
"#/VirtualAssessmentSubmissionDraft"
}
}
}
]
},
"VirtualAssessmentSubmissionDraft"
:
{
"required"
:
[
"createdAt"
,
"content"
,
"assignment"
],
"properties"
:
{
"createdAt"
:
{
"format"
:
"date-time"
,
"type"
:
"string"
},
"updatedAt"
:
{
"format"
:
"date-time"
,
"type"
:
"string"
},
"content"
:
{
"type"
:
"string"
},
"assessment"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment"
}
}
},
"SubmissionSection"
:
{
"required"
:
[
"type"
,
"template"
],
"properties"
:
{
"type"
:
{
"type"
:
"string"
,
"enum"
:
[
"PARTICIPANT"
,
"TEAM"
]
},
"answers"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/answer"
}
},
"template"
:
{
"$ref"
:
"https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Subscription.yaml/#/FormTemplate"
}
},
"discriminator"
:
{
"propertyName"
:
"type"
,
"mapping"
:
{
"PARTICIPANT"
:
"#/ParticipantSubmissionSection"
,
"TEAM"
:
"#/TeamSubmissionSection"
}
}
},
"TeamSubmissionSection"
:
{
"allOf"
:
{
"type"
:
"object"
,
"$ref"
:
"#/SubmissionSection"
}
},
"ParticipantSubmissionSection"
:
{
"allOf"
:
{
"type"
:
"object"
,
"$ref"
:
"#/SubmissionSection"
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment