↑
Q
M
schema
{
query
:
Query
mutation
:
Mutation
}
"""
Custom error type interface
"""
interface
ErrorResult
{
message
:
String
!
code
:
String
!
}
interface
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
}
"""
Identity
"""
interface
IdentityView
{
id
:
ID
!
name
:
String
!
isAccessible
:
Boolean
!
}
"""
Reprezentace MyIdentity
"""
interface
MyIdentity
{
id
:
ID
!
name
:
String
!
isAccessible
:
Boolean
!
systemAdmin
:
Boolean
!
accessibleInstitutes
:
[
InstituteAccess
!
]
!
}
"""
Reprezentace payloadu
"""
type
AddFilesToVoucherRedeemRequestPayload
{
success
:
Boolean
!
}
"""
ApiToken
"""
type
ApiTokenView
implements
IdentityView
{
id
:
ID
!
isAccessible
:
Boolean
!
name
:
String
!
}
"""
Describes user's access to application
"""
type
AppAccess
{
id
:
ID
!
name
:
String
!
modules
:
[
ModuleAccess
!
]
!
}
"""
approve voucher redeem
"""
type
ApproveVoucherRedeemPayload
{
success
:
Boolean
!
}
type
AudioFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
duration
:
Int
!
}
"""
Member board booking hours
"""
type
BookingAvailabilityHours
{
mon
:
[
BookingAvailabilityHoursInterval
!
]
!
tue
:
[
BookingAvailabilityHoursInterval
!
]
!
wed
:
[
BookingAvailabilityHoursInterval
!
]
!
thu
:
[
BookingAvailabilityHoursInterval
!
]
!
fri
:
[
BookingAvailabilityHoursInterval
!
]
!
sat
:
[
BookingAvailabilityHoursInterval
!
]
!
sun
:
[
BookingAvailabilityHoursInterval
!
]
!
}
"""
Member board opening hour
"""
type
BookingAvailabilityHoursInterval
{
startTime
:
LocalTime
!
endTime
:
LocalTimeEnd
!
}
"""
Reprezentace kandidata
"""
type
Candidate
{
id
:
ID
!
email
:
EmailAddress
!
firstName
:
String
!
lastName
:
String
!
countryCode
:
String
!
examSessions
:
[
ExamSessionView
!
]
!
}
"""
wrong email amount
"""
type
CandidateEmailCountMismatch
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Reprezentace výběru z kandidátů
"""
type
CandidateSelection
{
items
(
sort
:
CandidateSort
!
=
CREATED
sortDirection
:
SortDirection
!
=
DESC
limit
:
Int
!
=
10
@intConstraint
(
min
:
1
,
max
:
100
)
offset
:
Int
!
=
0
@intConstraint
(
min
:
0
)
)
:
[
Candidate
!
]
!
count
:
Int
!
}
"""
Reprezentace kandidata
"""
type
CandidateView
{
id
:
ID
!
email
:
EmailAddress
!
firstName
:
String
!
lastName
:
String
!
countryCode
:
String
!
isAccessible
:
Boolean
!
}
"""
Voucher generation is locked
"""
type
CannotGenerateVoucher
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Reprezentace payloadu createVoucherTemplatePayload
"""
type
CreateVoucherTemplatePayload
{
result
:
VoucherTemplate
!
}
"""
decline voucher redeem
"""
type
DeclineVoucherRedeemPayload
{
success
:
Boolean
!
}
"""
Reprezentace institutu
"""
type
DeleteCandidatePayload
{
success
:
Boolean
!
}
"""
Smazání voucheru
"""
type
DeleteVoucherPayload
{
success
:
Boolean
!
}
"""
Smazání voucher templaty
"""
type
DeleteVoucherTemplatePayload
{
success
:
Boolean
!
}
type
DocumentFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
}
"""
wrong exam center
"""
type
ExamCenterNotBelongsToMemberBoard
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
ExamCenter
"""
type
ExamCenterView
{
id
:
ID
!
name
:
String
!
contactEmail
:
EmailAddress
instituteId
:
ID
!
memberBoardId
:
ID
!
isAccessible
:
Boolean
!
}
"""
Reprezxentace ExamSession
"""
type
ExamSessionView
{
token
:
ID
!
exam
:
ExamView
!
candidateId
:
ID
!
passed
:
Boolean
earnedPercentage
:
Float
requiredPercentage
:
Int
!
earnedPoints
:
Int
maxPoints
:
Int
evaluatedAt
:
DateTimeMs
approvedAt
:
DateTimeMs
isAccessible
:
Boolean
!
}
"""
Reprezentace voucher template
"""
type
ExamTemplateWithLanguages
{
examTemplate
:
TemplateView
!
languages
:
[
Language
!
]
!
}
"""
Reprezentace examu
"""
type
ExamView
{
id
:
ID
!
template
:
TemplateView
!
templateVersionId
:
ID
!
startTime
:
DateTimeMs
endTime
:
DateTimeMs
secondaryCamera
:
Boolean
withTimeBonus
:
Boolean
!
isAccessible
:
Boolean
!
}
"""
Exceed max voucher amount
"""
type
ExceedMaxVoucherAmount
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
extend voucheru
"""
type
ExtendVouchersPayload
{
success
:
Boolean
!
}
"""
Reprezentace url pro upload souboru
"""
type
FileUploadUrlPayload
{
url
:
String
!
}
"""
Reprezentace payloadu generace voucheru
"""
type
GenerateVouchersPayload
{
voucherBulk
:
VoucherBulk
!
}
type
ImageFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
width
:
Int
!
height
:
Int
!
}
"""
Reprezentace importu kandidata
"""
type
ImportCandidatesPayload
{
count
:
Int
!
skippedCount
:
Int
!
}
"""
Incorrect input when setting expire at.
"""
type
IncorrectInputForExtendsVouchers
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Describes user's access to institute
"""
type
InstituteAccess
{
id
:
ID
!
name
:
String
!
scope
:
InstituteScope
!
accessibleApps
:
[
AppAccess
!
]
!
isRootUser
:
Boolean
!
}
"""
Describes user's data scope within an institute
"""
type
InstituteScope
{
memberBoardIds
:
[
String
!
]
examCenterIds
:
[
String
!
]
}
"""
Institute
"""
type
InstituteView
{
id
:
ID
!
name
:
String
!
logoFileUrl
:
Url
isAccessible
:
Boolean
!
}
type
InvalidBucket
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid country code provided exception.
"""
type
InvalidCountryCode
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid CSV file provided exception.
"""
type
InvalidCsvFile
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
type
InvalidFileUrl
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid member board values.
"""
type
InvalidMemberBoardValues
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid languages
"""
type
InvalidSetOfLanguages
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid time interval
"""
type
InvalidTimeInterval
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid voucher
"""
type
InvalidVoucher
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid voucher part alphabet
"""
type
InvalidVoucherPartAlphabet
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Invalid voucher template.
"""
type
InvalidVoucherTemplate
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Member board not found
"""
type
MemberBoardNotFound
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Member board voucher part type
"""
type
MemberBoardSettings
{
memberBoard
:
MemberBoardView
!
voucherPart
:
String
bookingParticipantsLimit
:
Int
bookingAvailabilityHours
:
BookingAvailabilityHours
!
}
"""
Member Board
"""
type
MemberBoardView
{
id
:
ID
!
name
:
String
!
contactEmail
:
EmailAddress
instituteId
:
ID
!
logoFileUrl
:
Url
isAccessible
:
Boolean
!
}
"""
Member board voucher part exists
"""
type
MemberBoardVoucherPartExists
implements
ErrorResult
{
message
:
String
!
code
:
String
!
duplicatedCode
:
String
!
}
"""
Describes user's access to module
"""
type
ModuleAccess
{
id
:
ID
!
name
:
String
!
permissions
:
[
String
!
]
!
}
"""
Root type pro mutation operaci
"""
type
Mutation
{
importCandidatesCsv
(
input
:
ImportCandidatesCsvInput
!
)
:
ImportCandidatesCsvResult
!
@auth
(
module
:
DEFAULT
,
permission
:
IMPORT_CANDIDATE
)
importCandidatesRaw
(
input
:
ImportCandidatesRawInput
!
)
:
ImportCandidatesRawResult
!
@auth
(
module
:
DEFAULT
,
permission
:
IMPORT_CANDIDATE
)
deleteCandidate
(
id
:
ID
!
@resource
(
type
:
CANDIDATE
)
)
:
DeleteCandidateResult
!
@auth
(
module
:
DEFAULT
,
permission
:
DELETE_CANDIDATE
)
updateCandidate
(
id
:
ID
!
@resource
(
type
:
CANDIDATE
)
input
:
UpdateCandidateInput
!
)
:
UpdateCandidatePayload
!
@auth
(
module
:
DEFAULT
,
permission
:
UPDATE_CANDIDATE
)
updateTenantSettings
(
input
:
TenantSettingsInput
!
)
:
UpdateTenantSettingsResult
!
@root
setMemberBoardsSettings
(
input
:
SetMemberBoardsSettingsInput
!
)
:
SetMemberBoardsSettingsResult
!
@auth
(
module
:
DEFAULT
)
deleteVoucherTemplate
(
id
:
ID
!
@resource
(
type
:
VOUCHER_TEMPLATE
)
)
:
DeleteVoucherTemplateResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_TEMPLATE_DELETE
)
updateVoucherTemplate
(
id
:
ID
!
@resource
(
type
:
VOUCHER_TEMPLATE
)
input
:
UpdateVoucherTemplateInput
!
)
:
UpdateVoucherTemplateResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_TEMPLATE_UPDATE
)
createVoucherTemplate
(
input
:
CreateVoucherTemplateInput
!
)
:
CreateVoucherTemplateResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_TEMPLATE_CREATE
)
generateVouchers
(
input
:
GenerateVouchersInput
!
)
:
GenerateVouchersResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_GENERATE
)
deleteVoucher
(
id
:
ID
!
@resource
(
type
:
VOUCHER
)
)
:
DeleteVoucherResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_DELETE
)
extendVouchers
(
input
:
ExtendVouchersInput
!
)
:
ExtendVouchersResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_EXTEND
)
approveVoucherRedeemRequest
(
id
:
ID
!
@resource
(
type
:
VOUCHER_REDEEM_REQUEST
)
)
:
ApproveVoucherRedeemResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_REDEEM_REQUEST_APPROVE
)
declineVoucherRedeemRequest
(
id
:
ID
!
@resource
(
type
:
VOUCHER_REDEEM_REQUEST
)
input
:
DeclineVoucherRedeemRequestInput
!
)
:
DeclineVoucherRedeemResult
!
@auth
(
module
:
VOUCHER
,
permission
:
VOUCHER_REDEEM_REQUEST_APPROVE
)
validateFile
(
input
:
ValidateFileInput
!
)
:
ValidateFileResult
!
addFilesToVoucherRedeemRequest
(
input
:
AddFilesToVoucherRedeemRequestInput
!
)
:
AddFilesToVoucherRedeemRequestResult
!
@auth
(
module
:
VOUCHER
,
permission
:
UPLOAD_FILES
)
}
"""
Authenticated api token
"""
type
MyApiTokenIdentity
implements
MyIdentity
{
id
:
ID
!
isAccessible
:
Boolean
!
systemAdmin
:
Boolean
!
accessibleInstitutes
:
[
InstituteAccess
!
]
!
name
:
String
!
}
"""
Authenticated user
"""
type
MyUserIdentity
implements
MyIdentity
{
id
:
ID
!
isAccessible
:
Boolean
!
systemAdmin
:
Boolean
!
accessibleInstitutes
:
[
InstituteAccess
!
]
!
name
:
String
!
firstName
:
String
!
lastName
:
String
!
email
:
EmailAddress
!
language
:
Language
!
}
type
PdfFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
}
"""
Root type pro query operaci
"""
type
Query
{
"Auth"
me
:
MyIdentity
!
@loggedIn
"Candidate crud"
candidate
(
id
:
ID
!
@resource
(
type
:
CANDIDATE
)
)
:
Candidate
!
@auth
(
module
:
DEFAULT
)
candidates
(
filter
:
CandidateFilter
!
=
{
name
:
null
}
)
:
CandidateSelection
!
@auth
(
module
:
DEFAULT
)
"Tenant settings"
tenantSettings
:
TenantSettings
!
@root
memberBoardsSettings
:
[
MemberBoardSettings
!
]
!
@auth
(
module
:
DEFAULT
)
voucherTemplate
(
id
:
ID
!
@resource
(
type
:
VOUCHER_TEMPLATE
)
)
:
VoucherTemplate
!
@auth
(
module
:
VOUCHER
)
voucherTemplates
(
filter
:
VoucherTemplateFilter
!
=
{
name
:
null
}
)
:
VoucherTemplateSelection
!
@auth
(
module
:
VOUCHER
)
voucherBulk
(
id
:
ID
!
@resource
(
type
:
VOUCHER_BULK
)
)
:
VoucherBulk
!
@auth
(
module
:
VOUCHER
)
voucherBulks
(
filter
:
VoucherBulkFilter
!
=
{
voucherTemplateId
:
null
,
memberBoardId
:
null
}
)
:
VoucherBulkSelection
!
@auth
(
module
:
VOUCHER
)
voucher
(
id
:
ID
!
@resource
(
type
:
VOUCHER
)
)
:
Voucher
!
@auth
(
module
:
VOUCHER
)
vouchers
(
filter
:
VoucherFilter
!
=
{
code
:
null
,
voucherTemplateId
:
null
,
memberBoardId
:
null
,
voucherBulkId
:
null
,
examCenterId
:
null
}
)
:
VoucherSelection
!
@auth
(
module
:
VOUCHER
)
voucherRedeemRequest
(
id
:
ID
!
@resource
(
type
:
VOUCHER_REDEEM_REQUEST
)
)
:
VoucherRedeemRequest
!
@auth
(
module
:
VOUCHER
)
voucherRedeemRequests
(
filter
:
VoucherRedeemRequestFilter
!
=
{
code
:
null
,
status
:
null
,
active
:
null
}
)
:
VoucherRedeemRequestSelection
!
@auth
(
module
:
VOUCHER
)
examTemplates
:
[
TemplateView
!
]
!
@auth
(
module
:
DEFAULT
)
fileUploadUrl
(
input
:
FileUploadUrlInput
!
)
:
FileUploadUrlResult
!
}
"""
VoucherRedeemRequest processed.
"""
type
RedeemRequestAlreadyProcessed
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Reprezentace nastavení voucher partu pro member board
"""
type
SetMemberBoardsSettingsPayload
{
success
:
Boolean
!
}
"""
Reprezentace templatu
"""
type
TemplateView
{
id
:
ID
!
templateVersionId
:
ID
!
name
:
String
!
logoUrl
:
Url
durationInMinutes
:
Int
!
durationInMinutesWithTimeBonus
:
Int
!
requiredPercentage
:
Int
!
availableLanguages
:
[
Language
!
]
!
isAccessible
:
Boolean
!
requireDocuments
:
Boolean
!
}
"""
Reprezentace nastaveni tenanta
"""
type
TenantSettings
{
soapUsername
:
String
!
soapPassword
:
String
!
voucherPart
:
String
!
}
type
UnableToAnalyzeFile
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
type
UnknownFileType
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Reprezentace payloadu updateCandidate
"""
type
UpdateCandidatePayload
{
result
:
Candidate
!
}
"""
Reprezentace payloadu updateTenantSettings
"""
type
UpdateTenantSettingsPayload
{
result
:
TenantSettings
!
}
"""
Reprezentace payloadu updateVoucherTemplatePayload
"""
type
UpdateVoucherTemplatePayload
{
result
:
VoucherTemplate
!
}
type
UrlFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
}
"""
User
"""
type
UserView
implements
IdentityView
{
id
:
ID
!
isAccessible
:
Boolean
!
name
:
String
!
firstName
:
String
!
lastName
:
String
!
email
:
EmailAddress
!
}
"""
Reprezentace file
"""
type
ValidateFilePayload
{
result
:
File
!
}
type
VideoFile
implements
File
{
id
:
ID
!
type
:
FileType
!
name
:
String
!
bucket
:
String
!
url
:
Url
!
size
:
Int
!
width
:
Int
!
height
:
Int
!
duration
:
Int
!
}
"""
Reprezentace voucheru
"""
type
Voucher
{
id
:
ID
!
code
:
String
!
voucherTemplate
:
VoucherTemplate
!
memberBoard
:
MemberBoardView
!
examTemplates
:
[
ExamTemplateWithLanguages
!
]
!
examCenter
:
ExamCenterView
candidateEmail
:
String
remainingBookingCount
:
Int
!
expiresAt
:
DateTimeMs
!
redeemedAt
:
DateTimeMs
}
"""
Reprezentace voucheru
"""
type
VoucherBulk
{
id
:
ID
!
targetAmount
:
Int
!
generatedAmount
:
Int
generatedAt
:
DateTimeMs
voucherTemplate
:
VoucherTemplate
!
memberBoard
:
MemberBoardView
!
examCenter
:
ExamCenterView
createdAt
:
DateTimeMs
!
candidateEmails
:
[
EmailAddress
!
]
candidateEmailsFailed
:
[
EmailAddress
!
]
status
:
VoucherBulkStatus
!
}
"""
Reprezentace výběru z voucheru
"""
type
VoucherBulkSelection
{
items
(
sort
:
VoucherBulkSort
!
=
CREATED
sortDirection
:
SortDirection
!
=
DESC
limit
:
Int
!
=
10
@intConstraint
(
min
:
1
,
max
:
100
)
offset
:
Int
!
=
0
@intConstraint
(
min
:
0
)
)
:
[
VoucherBulk
!
]
!
count
:
Int
!
}
"""
Reprezentace voucheru redeem requestu
"""
type
VoucherRedeemRequest
{
id
:
ID
!
candidate
:
Candidate
!
language
:
Language
!
withTimeBonus
:
Boolean
!
secondaryCamera
:
Boolean
!
startTime
:
DateTimeMs
!
status
:
VoucherRedeemRequestStatus
!
examTemplate
:
TemplateView
!
voucher
:
Voucher
!
files
:
[
VoucherRedeemRequestFile
!
]
resolvedBy
:
IdentityView
resolvedAt
:
DateTimeMs
rebookedAt
:
DateTimeMs
comment
:
String
}
"""
Reprezentace file
"""
type
VoucherRedeemRequestFile
{
file
:
File
!
}
"""
Reprezentace výběru z voucher redeem requestu
"""
type
VoucherRedeemRequestSelection
{
items
(
sort
:
VoucherRedeemRequestSort
!
=
CREATED
sortDirection
:
SortDirection
!
=
DESC
limit
:
Int
!
=
10
@intConstraint
(
min
:
1
,
max
:
100
)
offset
:
Int
!
=
0
@intConstraint
(
min
:
0
)
)
:
[
VoucherRedeemRequest
!
]
!
count
:
Int
!
}
"""
Reprezentace výběru z voucheru
"""
type
VoucherSelection
{
items
(
sort
:
VoucherSort
!
=
CREATED
sortDirection
:
SortDirection
!
=
DESC
limit
:
Int
!
=
10
@intConstraint
(
min
:
1
,
max
:
100
)
offset
:
Int
!
=
0
@intConstraint
(
min
:
0
)
)
:
[
Voucher
!
]
!
count
:
Int
!
}
"""
Reprezentace voucher template
"""
type
VoucherTemplate
{
id
:
ID
!
name
:
String
!
pattern
:
String
!
voucherExpirationDays
:
Int
!
examTemplates
:
[
ExamTemplateWithLanguages
!
]
!
activeVoucherCount
:
Int
!
maxRebookingCount
:
Int
!
minRebookingAdvanceHours
:
Int
!
minBookingBufferHours
:
Int
!
}
"""
Voucher template has vouchers.
"""
type
VoucherTemplateHasGeneratedVouchers
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Voucher template pattern unique.
"""
type
VoucherTemplatePatternUnique
implements
ErrorResult
{
message
:
String
!
code
:
String
!
}
"""
Reprezentace výběru z voucher templatu
"""
type
VoucherTemplateSelection
{
items
(
sort
:
VoucherTemplateSort
!
=
CREATED
sortDirection
:
SortDirection
!
=
DESC
limit
:
Int
!
=
10
@intConstraint
(
min
:
1
,
max
:
100
)
offset
:
Int
!
=
0
@intConstraint
(
min
:
0
)
)
:
[
VoucherTemplate
!
]
!
count
:
Int
!
}
union
AddFilesToVoucherRedeemRequestResult
=
AddFilesToVoucherRedeemRequestPayload
union
ApproveVoucherRedeemResult
=
ApproveVoucherRedeemPayload
|
RedeemRequestAlreadyProcessed
union
CreateVoucherTemplateResult
=
CreateVoucherTemplatePayload
|
InvalidVoucherTemplate
|
InvalidSetOfLanguages
union
DeclineVoucherRedeemResult
=
DeclineVoucherRedeemPayload
|
RedeemRequestAlreadyProcessed
union
DeleteCandidateResult
=
DeleteCandidatePayload
union
DeleteVoucherResult
=
DeleteVoucherPayload
union
DeleteVoucherTemplateResult
=
DeleteVoucherTemplatePayload
union
ExtendVouchersResult
=
ExtendVouchersPayload
|
IncorrectInputForExtendsVouchers
union
FileUploadUrlResult
=
FileUploadUrlPayload
|
InvalidBucket
union
GenerateVouchersResult
=
GenerateVouchersPayload
|
ExceedMaxVoucherAmount
|
MemberBoardNotFound
|
CannotGenerateVoucher
|
CandidateEmailCountMismatch
|
ExamCenterNotBelongsToMemberBoard
union
ImportCandidatesCsvResult
=
ImportCandidatesPayload
|
InvalidCsvFile
|
InvalidCountryCode
union
ImportCandidatesRawResult
=
ImportCandidatesPayload
|
InvalidCountryCode
union
SetMemberBoardsSettingsResult
=
SetMemberBoardsSettingsPayload
|
InvalidMemberBoardValues
|
InvalidVoucherPartAlphabet
|
MemberBoardVoucherPartExists
|
InvalidTimeInterval
union
UpdateTenantSettingsResult
=
UpdateTenantSettingsPayload
|
InvalidVoucherPartAlphabet
union
UpdateVoucherTemplateResult
=
UpdateVoucherTemplatePayload
|
InvalidVoucherTemplate
|
VoucherTemplatePatternUnique
|
VoucherTemplateHasGeneratedVouchers
|
InvalidSetOfLanguages
union
ValidateFileResult
=
ValidateFilePayload
|
UnableToAnalyzeFile
|
UnknownFileType
|
InvalidFileUrl
"""
Input add list of files to voucher redeem request
"""
input
AddFilesToVoucherRedeemRequestInput
{
voucherRedeemRequestId
:
ID
!
@resource
(
type
:
VOUCHER_REDEEM_REQUEST
)
files
:
[
ID
!
]
!
@listConstraint
(
minItems
:
1
,
unique
:
true
)
@resource
(
type
:
FILE
)
}
"""
Input pro nastaveni opening hours pro MB
"""
input
BookingAvailabilityHoursInput
{
mon
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
tue
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
wed
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
thu
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
fri
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
sat
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
sun
:
[
BookingAvailabilityHoursIntervalInput
!
]
!
}
"""
Input pro nastaveni opening hours pro MB
"""
input
BookingAvailabilityHoursIntervalInput
{
startTime
:
LocalTime
!
endTime
:
LocalTimeEnd
!
}
"""
Input pro přidání Institute
"""
input
CandidateFilter
{
name
:
String
=
null
@stringConstraint
(
minLength
:
1
)
}
"""
Input pro pridani kandidata
"""
input
CandidateInput
{
email
:
EmailAddress
!
countryCode
:
String
!
@stringConstraint
(
minLength
:
1
,
maxLength
:
3
)
firstName
:
String
!
@stringConstraint
(
minLength
:
1
,
maxLength
:
200
)
lastName
:
String
!
@stringConstraint
(
minLength
:
1
,
maxLength
:
200
)
}
"""
Input pro create VoucherTemplate
"""
input
CreateVoucherTemplateInput
{
name
:
String
!
@stringConstraint
(
maxLength
:
255
)
pattern
:
String
!
@stringConstraint
(
maxLength
:
100
)
voucherExpirationDays
:
Int
!
@intConstraint
(
min
:
1
)
maxRebookingCount
:
Int
!
@intConstraint
(
min
:
0
)
minRebookingAdvanceHours
:
Int
!
@intConstraint
(
min
:
1
)
minBookingBufferHours
:
Int
!
=
1
@intConstraint
(
min
:
1
)
examTemplates
:
[
VoucherTemplateExamTemplateInput
!
]
!
}
"""
Input na decline requestu
"""
input
DeclineVoucherRedeemRequestInput
{
comment
:
String
=
null
}
"""
Input na extend voucheru
"""
input
ExtendVouchersInput
{
voucherIds
:
[
ID
!
]
!
@resource
(
type
:
VOUCHER
)
date
:
DateTimeMs
@optional
days
:
Int
@optional
@intConstraint
(
min
:
1
)
}
"""
File generate url input
"""
input
FileUploadUrlInput
{
bucket
:
Bucket
!
}
"""
GenerateVoucherSendingStrategyInput
"""
input
GenerateVoucherSendingStrategyInput
@oneOf
{
toExamCenter
:
SendToExamCenterInput
toCandidates
:
SendToCandidatesInput
}
"""
Input pro generovani voucheru
"""
input
GenerateVouchersInput
{
voucherTemplateId
:
ID
!
@resource
(
type
:
VOUCHER_TEMPLATE
)
memberBoardId
:
ID
!
@resource
(
type
:
MEMBER_BOARD
)
count
:
Int
!
@intConstraint
(
min
:
1
,
max
:
400
)
sendingStrategy
:
GenerateVoucherSendingStrategyInput
=
null
}
"""
Input pro csv import candidates
"""
input
ImportCandidatesCsvInput
{
file
:
Upload
!
}
"""
Input pro raw import candidates
"""
input
ImportCandidatesRawInput
{
candidates
:
[
CandidateInput
!
]
!
}
input
ListConstraintInput
{
minItems
:
Int
=
null
@intConstraint
(
min
:
0
)
maxItems
:
Int
=
null
@intConstraint
(
min
:
0
)
unique
:
Boolean
!
=
false
innerList
:
ListConstraintInput
=
null
}
"""
Input set voucher_part for member board
"""
input
MemberBoardSettingsInput
{
memberBoardId
:
ID
!
@resource
(
type
:
MEMBER_BOARD
)
voucherPart
:
String
!
@stringConstraint
(
minLength
:
4
,
maxLength
:
4
)
bookingParticipantsLimit
:
Int
=
null
bookingAvailabilityHours
:
BookingAvailabilityHoursInput
!
}
input
ObjectConstraintInput
{
count
:
Int
!
@intConstraint
(
min
:
1
)
from
:
[
String
!
]
!
@listConstraint
(
minItems
:
1
)
}
"""
SendToCandidatesInput
"""
input
SendToCandidatesInput
{
candidateEmails
:
[
EmailAddress
!
]
!
@listConstraint
(
minItems
:
1
,
unique
:
true
)
examCenterId
:
ID
=
null
@resource
(
type
:
EXAM_CENTER
)
}
"""
SendToExamCenterInput
"""
input
SendToExamCenterInput
{
examCenterId
:
ID
!
@resource
(
type
:
EXAM_CENTER
)
}
"""
Input set list of memberBoards with voucher parts
"""
input
SetMemberBoardsSettingsInput
{
memberBoardsSettings
:
[
MemberBoardSettingsInput
!
]
!
}
"""
Input pro TenantSettings
"""
input
TenantSettingsInput
{
soapUsername
:
String
@optional
@stringConstraint
(
minLength
:
4
,
maxLength
:
200
)
soapPassword
:
String
@optional
@stringConstraint
(
minLength
:
4
,
maxLength
:
200
)
voucherPart
:
String
@optional
@stringConstraint
(
minLength
:
4
,
maxLength
:
4
)
}
"""
Input pro pridani kandidata
"""
input
UpdateCandidateInput
{
email
:
EmailAddress
@optional
countryCode
:
String
@optional
@stringConstraint
(
minLength
:
1
,
maxLength
:
3
)
firstName
:
String
@optional
@stringConstraint
(
minLength
:
1
,
maxLength
:
200
)
lastName
:
String
@optional
@stringConstraint
(
minLength
:
1
,
maxLength
:
200
)
}
"""
Input pro VoucherTemplate
"""
input
UpdateVoucherTemplateInput
{
name
:
String
@optional
@stringConstraint
(
maxLength
:
255
)
pattern
:
String
@optional
@stringConstraint
(
maxLength
:
100
)
voucherExpirationDays
:
Int
@optional
@intConstraint
(
min
:
1
)
maxRebookingCount
:
Int
@optional
@intConstraint
(
min
:
0
)
minRebookingAdvanceHours
:
Int
@optional
@intConstraint
(
min
:
1
)
minBookingBufferHours
:
Int
@optional
@intConstraint
(
min
:
1
)
examTemplates
:
[
VoucherTemplateExamTemplateInput
!
]
@optional
}
"""
File upload validation input
"""
input
ValidateFileInput
{
fileUrl
:
Url
!
name
:
String
!
@stringConstraint
(
minLength
:
1
,
maxLength
:
200
)
}
"""
Input pro filtraci voucher bulk
"""
input
VoucherBulkFilter
{
voucherTemplateId
:
ID
=
null
@resource
(
type
:
VOUCHER_TEMPLATE
)
memberBoardId
:
ID
=
null
@resource
(
type
:
MEMBER_BOARD
)
}
"""
Input pro filtraci voucheru
"""
input
VoucherFilter
{
code
:
String
=
null
voucherTemplateId
:
ID
=
null
@resource
(
type
:
VOUCHER_TEMPLATE
)
memberBoardId
:
ID
=
null
@resource
(
type
:
MEMBER_BOARD
)
voucherBulkId
:
ID
=
null
@resource
(
type
:
VOUCHER_BULK
)
examCenterId
:
ID
=
null
@resource
(
type
:
EXAM_CENTER
)
}
"""
Input pro filtraci voucher template
"""
input
VoucherRedeemRequestFilter
{
code
:
String
=
null
@stringConstraint
(
minLength
:
4
)
status
:
VoucherRedeemRequestStatus
=
null
active
:
Boolean
=
null
}
"""
Input pro prirazeni jazyku k ExamTemplate pro VoucherTemplate
"""
input
VoucherTemplateExamTemplateInput
{
examTemplateId
:
ID
!
@resource
(
type
:
EXAM_TEMPLATE
)
languages
:
[
Language
!
]
=
null
@listConstraint
(
unique
:
true
)
}
"""
Input pro filtraci voucher template
"""
input
VoucherTemplateFilter
{
name
:
String
=
null
@stringConstraint
(
minLength
:
1
)
}
"""
Date type - string which contains valid date in "<YYYY>-<MM>-<DD>" format.
"""
scalar
Date
@specifiedBy
(
url
:
"https://datatracker.ietf.org/doc/html/rfc3339#section-5.6"
)
"""
DateTimeMs type - string which contains valid date in ISO8601 format.
"""
scalar
DateTimeMs
@specifiedBy
(
url
:
"https://datatracker.ietf.org/doc/html/rfc3339#section-5.6"
)
"""
EmailAddress type - string which contains valid email address.
"""
scalar
EmailAddress
@specifiedBy
(
url
:
"https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1"
)
"""
Json type - string which contains valid JSON.
"""
scalar
Json
@specifiedBy
(
url
:
"https://datatracker.ietf.org/doc/html/rfc7159"
)
"""
LocalTime type - string which contains time in "HH:MM:SS" format (without timezone information).
"""
scalar
LocalTime
"""
LocalTimeEnd type - string which contains time in "HH:MM:SS" format (without timezone information), including a special 24:00:00 value for usage in intervals.
"""
scalar
LocalTimeEnd
"""
Upload type - represents file which was send to server.
By GraphQL viewpoint it is scalar type, but it must be used as input only.;
"""
scalar
Upload
@specifiedBy
(
url
:
"https://github.com/jaydenseric/graphql-multipart-request-spec"
)
"""
Url type - string which contains valid URL (Uniform Resource Locator).
"""
scalar
Url
@specifiedBy
(
url
:
"https://datatracker.ietf.org/doc/html/rfc3986"
)
"""
Aws buckets supported by this application
"""
enum
Bucket
{
candidate
}
"""
Možnosti řazení kandidátů
"""
enum
CandidateSort
{
CREATED
NAME
}
"""
Type of file
"""
enum
FileType
{
IMAGE
AUDIO
VIDEO
PDF
URL
DOCUMENT
}
"""
Supported languages
"""
enum
Language
{
EN
DE
ES
FR
IT
PL
}
"""
Modules supported by this application
"""
enum
Module
{
DEFAULT
VOUCHER
}
"""
Permissions supported by this application
"""
enum
Permission
{
DELETE_CANDIDATE
IMPORT_CANDIDATE
UPDATE_CANDIDATE
UPLOAD_FILES
VOUCHER_TEMPLATE_CREATE
VOUCHER_TEMPLATE_UPDATE
VOUCHER_TEMPLATE_DELETE
VOUCHER_GENERATE
VOUCHER_DELETE
VOUCHER_EXTEND
VOUCHER_REDEEM_REQUEST_APPROVE
}
"""
Typ entity
"""
enum
ResourceType
{
CANDIDATE
VOUCHER_TEMPLATE
VOUCHER_BULK
VOUCHER
VOUCHER_REDEEM_REQUEST
FILE
IDENTITY
USER
MEMBER_BOARD
EXAM_CENTER
EXAM_TEMPLATE
EXAM_SESSION
}
"""
Sorting direction
"""
enum
SortDirection
{
ASC
DESC
}
"""
Možnosti řazení voucheru
"""
enum
VoucherBulkSort
{
CREATED
}
"""
Voucher bulk status
"""
enum
VoucherBulkStatus
{
PROCESSING
SUCCESS
ERROR
}
"""
Možnosti řazení voucher redeem requestu
"""
enum
VoucherRedeemRequestSort
{
CREATED
}
"""
Voucher redeem request status
"""
enum
VoucherRedeemRequestStatus
{
PENDING
APPROVED
DECLINED
}
"""
Možnosti řazení voucheru
"""
enum
VoucherSort
{
CREATED
EXPIRES_AT
}
"""
Možnosti řazení voucher template
"""
enum
VoucherTemplateSort
{
CREATED
NAME
}
"""
Only system admin can perform this action.
"""
directive
@admin
on
FIELD_DEFINITION
"""
Only user with given permission can perform this action.
"""
directive
@auth
(
module
:
Module
!
permission
:
Permission
)
on
FIELD_DEFINITION
"""
Only user with given permission can perform this action.
"""
directive
@authResource
(
module
:
Module
!
permission
:
Permission
)
repeatable
on
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
"""
Graphpinator floatConstraint directive.
"""
directive
@floatConstraint
(
min
:
Float
max
:
Float
oneOf
:
[
Float
!
]
@listConstraint
(
minItems
:
1
)
)
on
FIELD_DEFINITION
|
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
|
VARIABLE_DEFINITION
"""
Graphpinator intConstraint directive.
"""
directive
@intConstraint
(
min
:
Int
max
:
Int
oneOf
:
[
Int
!
]
@listConstraint
(
minItems
:
1
)
)
on
FIELD_DEFINITION
|
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
|
VARIABLE_DEFINITION
"""
Graphpinator listConstraint directive.
"""
directive
@listConstraint
(
minItems
:
Int
=
null
@intConstraint
(
min
:
0
)
maxItems
:
Int
=
null
@intConstraint
(
min
:
0
)
unique
:
Boolean
!
=
false
innerList
:
ListConstraintInput
=
null
)
on
FIELD_DEFINITION
|
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
|
VARIABLE_DEFINITION
"""
Only logged in user can perform this action.
"""
directive
@loggedIn
on
FIELD_DEFINITION
"""
Graphpinator objectConstraint directive.
"""
directive
@objectConstraint
(
atLeastOne
:
[
String
!
]
@listConstraint
(
minItems
:
1
)
atMostOne
:
[
String
!
]
@listConstraint
(
minItems
:
1
)
exactlyOne
:
[
String
!
]
@listConstraint
(
minItems
:
1
)
atLeast
:
ObjectConstraintInput
atMost
:
ObjectConstraintInput
exactly
:
ObjectConstraintInput
)
repeatable
on
OBJECT
|
INTERFACE
|
INPUT_OBJECT
"""
Input value for this argument can be either omitted or have non-null value.
"""
directive
@optional
on
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
directive
@resource
(
type
:
ResourceType
!
)
on
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
"""
Only root user can perform this action.
"""
directive
@root
on
FIELD_DEFINITION
"""
Graphpinator stringConstraint directive.
"""
directive
@stringConstraint
(
minLength
:
Int
@intConstraint
(
min
:
0
)
maxLength
:
Int
@intConstraint
(
min
:
0
)
regex
:
String
oneOf
:
[
String
!
]
@listConstraint
(
minItems
:
1
)
)
on
FIELD_DEFINITION
|
ARGUMENT_DEFINITION
|
INPUT_FIELD_DEFINITION
|
VARIABLE_DEFINITION