ProjectsFIT APIs (v1)

Download OpenAPI specification:Download

Combined documentation of all ProjectsFIT APIs.

Authentication

OAuth2

Security Scheme Type OAuth2
authorizationCode OAuth Flow
Authorization URL: https://auth.fit.cvut.cz/oauth/authorize
Token URL: https://auth.fit.cvut.cz/oauth/token
Scopes:
  • cvut:profit:rbac:read -

    Grants read access based on the user roles.

  • cvut:profit:rbac:write -

    Grants write access based on the user roles.

clientCredentials OAuth Flow
Token URL: https://auth.fit.cvut.cz/oauth/token
Scopes:
  • cvut:profit:identities:rw -

    Grants read/write access to people and studies.

Authentication

Initiate Login Process

Redirects to the login form. Utilises OAuth 2.0 Authorization Code flow. Authorization server will then redirect back with the authorization code.

Responses

OAuth Callback

Exchanges authorization code for the access and refresh tokens. The tokens are passed via Set-Cookie header under oauthAccessToken and oauthRefreshToken.

query Parameters
code
required
string

Authorization code returned by the Authorization server.

state
required
string

State for CSRF protection.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 422,
  • "title": "Validation of the Request Body Failed",
  • "type": "urn:error:validation:body",
  • "errors": [
    ]
}

Log out

Logs user out by letting token cookies expire. Log out process is done only locally.

Responses

Thesis Change Request

List Change Requests

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
proponent
string
Example: proponent=flynnkev

Filter proposals with the specified proponent.

state
string (ProposalState)
Enum: "pending" "accepted" "rejected" "cancelled"

State of a proposal process. This is used for Thesis Change Request and Reviewer Proposal.

type
string (ChangeRequestType)
Enum: "revision" "cancellation" "other"

Type of a Thesis Change Request

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (ChangeRequest)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List Thesis’ Change Requests Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

query Parameters
limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (ChangeRequest)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

Request Body schema: application/json
Any of
type
required
string (ChangeRequestType)
Enum: "revision" "cancellation" "other"

Type of a Thesis Change Request

message
required
string

Comment on the change.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "revision",
  • "message": "Our industry partner has objections against open publication of the thesis.",
  • "patch": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Get Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

changeRequestId
required
integer

ID of the Change Request

Responses

Response Headers
Last-Modified
string
Example: "Wed, 21 Oct 2015 07:28:00 GMT"

Date and time at which the resource (returned object) was last modified.

Response Schema: application/json
id
required
number

Unique ID.

type
required
string (ChangeRequestType)
Enum: "revision" "cancellation" "other"

Type of a Thesis Change Request

message
required
string

Comment on the change.

object

Proposed changes for the Thesis Assignment described by JSON Merge Patch, i.e. only the changed fields are present and null means removal of the value. This is valid only for type 'revision'.

state
required
string (ProposalState)
Enum: "pending" "accepted" "rejected" "cancelled"

State of a proposal process. This is used for Thesis Change Request and Reviewer Proposal.

required
ThesisRef (object) or Thesis (object)

The Thesis for which this request was created.

required
PersonRef (object) or Person (object)

The person who created this request.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
Example
{
  • "id": 987456,
  • "type": "revision",
  • "message": "Our industry partner has objections against open publication of the thesis.",
  • "state": "pending",
  • "thesis": {
    },
  • "proponent": {
    },
  • "modifiedAt": "2020-01-01T12:00:00.000Z",
  • "patch": {
    }
}

Update Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

changeRequestId
required
integer

ID of the Change Request

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
message
string

Comment on the change.

object

Proposed changes for the Thesis Assignment described by JSON Merge Patch, i.e. only the changed fields are present and null means removal of the value. This is valid only for type 'revision'.

Responses

Request samples

Content type
application/merge-patch+json
{
  • "message": "string",
  • "patch": {
    }
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Cancel Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

changeRequestId
required
integer

ID of the Change Request

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Accept Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

changeRequestId
required
integer

ID of the Change Request

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Reject Change Request Deprecated

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

changeRequestId
required
integer

ID of the Change Request

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/json

A message with the reason of the rejection.

message
required
string

Text of the message.

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Configuration

Get Runtime Configuration

Authorizations:
OAuth2 (cvut:profit:rbac:read)

Responses

Response Schema: application/json
currentSemester
string (SemesterCode)
reportDeadlineBachelor
string <date-time>
reportDeadlineMaster
string <date-time>

Response samples

Content type
application/json
{
  • "currentSemester": "string",
  • "reportDeadlineBachelor": "2019-08-24T14:15:22Z",
  • "reportDeadlineMaster": "2019-08-24T14:15:22Z"
}

Update Runtime Configuration

Authorizations:
OAuth2 (cvut:profit:rbac:write)
Request Body schema: application/merge-patch+json
currentSemester
string (SemesterCode)
reportDeadlineBachelor
string <date-time>
reportDeadlineMaster
string <date-time>

Responses

Request samples

Content type
application/merge-patch+json
{
  • "currentSemester": "string",
  • "reportDeadlineBachelor": "2019-08-24T14:15:22Z",
  • "reportDeadlineMaster": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/problem+json
{
  • "status": 422,
  • "title": "Validation of the Request Body Failed",
  • "type": "urn:error:validation:body",
  • "errors": [
    ]
}

User

Get Current User

Returns the authenticated person, i.e. the user who has authorized the OAuth access token provided in the request.

Authorizations:
OAuth2 (cvut:profit:rbac:read)

Responses

Response Schema: application/json
titlesPre
required
string
Default: ""

Pre-nominal title(s) of the person or an empty string if none.

firstName
required
string

First name(s) of the person.

lastName
required
string

Last name(s) of the person.

titlesPost
required
string
Default: ""

Post-nominal title(s) of the person or an empty string if none.

username
required
string >= 3 characters ^[a-z0-9_.-]+$

CTU username of the Person.

kosId
number Nullable

ID of the Person in KOS.

email
required
string <email>

The preferred email address of the Person for sending notifications.

roles
required
Array of strings unique

A list of the Person's roles (both business and technical) relevant to ProjectsFIT.

active
required
boolean
Default: true

Whether this Person's account is still active or not.

required
object (PersonSettings)

Person (user) settings

Array of objects

A list of Studies of the Person, if any.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
Example
{
  • "username": "grodipet",
  • "kosId": 654123,
  • "titlesPre": "",
  • "firstName": "Peter",
  • "lastName": "Grodin",
  • "titlesPost": "",
  • "email": "grodipet@fit.cvut.cz",
  • "roles": [
    ],
  • "studies": [
    ],
  • "active": true,
  • "settings": {
    },
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Update Current User's settings

Authorizations:
OAuth2 (cvut:profit:rbac:write)
header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
active
boolean
Default: true

Whether this Person's account is still active or not.

titlesPre
string
Default: ""

Pre-nominal title(s) of the person or an empty string if none.

titlesPost
string
Default: ""

Post-nominal title(s) of the person or an empty string if none.

object (PersonSettings)

Person (user) settings

firstName
string

First name(s) of the person.

lastName
string

Last name(s) of the person.

kosId
number Nullable

ID of the Person in KOS.

email
string <email>

The preferred email address of the Person for sending notifications.

roles
Array of strings unique

A list of the Person's roles (both business and technical) relevant to ProjectsFIT.

Responses

Request samples

Content type
application/merge-patch+json
{
  • "active": true,
  • "titlesPre": "MSc",
  • "titlesPost": "Ph.D.",
  • "settings": {
    },
  • "firstName": "Meredith Rodney",
  • "lastName": "McKay",
  • "kosId": 0,
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

List My Theses

Returns theses related to the authorized user. It also includes drafts and archived theses.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
assignee
string

Filter theses by the assignee using a text search on person's username, first name and last name.

description
string
evaluationYear
integer
Example: evaluationYear=2022

Year of thesis defense/evaluation

language
Array of strings (ThesisLanguageList)
Items Enum: "cs" "en" "sk"
Example: language=en

Filter theses in the specified languages. Expects a comma-separated list of languages (cs, en or sk).

q
string

Fulltext query

reviewer
string

Filter theses by the reviewer using a text search on person's username, first name and last name.

specialization
Array of strings
Example: specialization=BI-WSI,NI-TI

Filter theses for the specified specializations (one of). Expects a comma-separated list of specialization codes.

states
string (ThesisMainState)
Enum: "draft" "proposed" "assigned" "review" "readyForDefence" "evaluated" "archived" "deleted"
Example: states=proposed,changeable.assigned.*

Filter theses in the specified states (one of). Expects a comma-separated list of thesis main states or dot-separated state paths. It may include wildcards: * matches one or more substates (path components).

studyDegree
Array of strings (StudyDegreeList)
Items Enum: "bachelor" "master"
Example: studyDegree=bachelor

Filter theses for the specified study degrees. Expects a comma-separated list of study degrees (bachelor or master).

supervisor
string

Filter theses by the supervisor using a text search on person's username, first name and last name.

title
string
validUntil
Array of strings
Example: validUntil=B202,B212

Filter theses by the semester until which they are valid.

verifiedByFtOfficer
boolean

Filter theses by property verifiedByFtOfficer.

withoutReviewer
boolean

Filter theses by missing reviewer.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Thesis)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List My Topics

Returns topics related to the authorized user. It also includes topics with visibility 'private'.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
author
string

Filter topics by the author using a text search on person's username, first name and last name.

keywords
Array of strings
Example: keywords=keyword 1,keyword 2

Filter theses which have all of the specified keywords. Expects a comma separated list of strings which do not contain a comma themselves.

q
string

Fulltext query over the keywords, title, and description.

studyDegrees
Array of strings (StudyDegreeList)
Items Enum: "bachelor" "master"
Example: studyDegrees=bachelor

Filter topics for the specified study degrees. Expects a comma-separated list of study degrees (bachelor or master).

specializations
Array of strings
Example: specializations=BI-WSI-SI,NI-TI

Filter topics which are especially recommended for one of the specified specializations. Expects a comma-separated list of specialization codes.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Topic)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Notification

List User's Notifications

Returns notifications for the current user.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
language
string (Language)
Enum: "cs" "en"

Extract type of T's values.

type
string
Enum: "notice" "task"

Filter notifications by the notification's type.

TaskNotificationSubtype (string) or NoticeNotificationSubtype (string) (NotificationSubtype)

Filter notifications by the notification's subtype.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of NoticeNotification (object) or TaskNotification (object) (Notification)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

List User's Notifications counts

Returns notifications counts by subtype for the current user.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
language
string (Language)
Enum: "cs" "en"

Extract type of T's values.

type
string
Enum: "notice" "task"

Filter notifications by the notification's type.

TaskNotificationSubtype (string) or NoticeNotificationSubtype (string) (NotificationSubtype)

Filter notifications by the notification's subtype.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of NoticeNotification (object) or TaskNotification (object) (Notification)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Mark Notifications as _seen_

Authorizations:
OAuth2 (cvut:profit:rbac:write)
query Parameters
ids
required
string
Example: ids=12,42,45,67

A comma-separated list of IDs of the Notifications to mark as seen.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Get Notifications Status

Authorizations:
OAuth2 (cvut:profit:rbac:read)

Responses

Response Schema: application/json
required
object

Status of 'notice' notifications.

required
object

Status of 'task' notifications.

Response samples

Content type
application/json
{
  • "notices": {
    },
  • "tasks": {
    }
}

Get Notification

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
id
required
integer

ID of the Notification

query Parameters
language
string (Language)
Enum: "cs" "en"

Extract type of T's values.

Responses

Response Schema: application/json
Any of
type
required
string
Value: "notice"
subtype
required
string (NoticeNotificationSubtype)
Enum: "acceptedByAssignee" "acceptedByReviewer" "approvedByOfficer" "archived" "assignReviewer" "cancelledByProponent" "cancelledDueToAcceptanceOfAnother" "cancellationRequest" "cancellationRequestApproved" "cancellationRequestRejected" "changeRequest" "changeRequestApproved" "changeRequestRejected" "deleted" "evaluated" "officerApprove" "printsApproved" "proposed" "proposedForApproval" "rejectedByAssignee" "rejectedByOfficer" "rejectedByReviewer" "requestForRemovingAssignee" "requestForRemovingAssigneeApproved" "requestForRemovingAssigneeRejected" "resubmitted" "returnedForRevision" "submitReviewerReport" "submitSupervisorReport" "submitted" "updatedByFtOfficer" "withdraw"

Extract type of T's values.

state
required
string
Default: "unseen"
Enum: "unseen" "seen" "visited"

State of the notification.

id
required
number
required
PersonRef (object) or Person (object)

Recipient of the notification.

recipientRole
string

The role or relationship of the recipient to which this notification relates.

PersonRef (object) or Person (object) or any

Sender of the notification, or null if sender is a system.

subject
required
string

Textual subject of the notification.

body
required
string

Textual body of the notification.

targetType
required
string (ResourceType)
Enum: "changeRequest" "notification" "person" "reviewerProposal" "specialization" "study" "thesis"

Extract type of T's values.

targetId
required
number

ID of the related resource (where the data comes from).

targetState
string

The state of the target resource to which this task is valid; when the target resource leaves this state, the task is marked as resolved.

This is set on 'task' notifications only.

templateData
required
object

JSON object with parameters for rendering template of this notification subtype.

createdAt
required
string

The date and time at which this object was created.

modifiedAt
required
string

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
Example
{
  • "id": 4776,
  • "type": "notice",
  • "subtype": "changeRequest",
  • "state": "unseen",
  • "recipient": {
    },
  • "subject": "Změna zadání",
  • "body": "Byl změněn popis zadání.",
  • "targetType": "thesis",
  • "targetId": 1,
  • "templateData": {
    },
  • "createdAt": "2020-01-01T12:00:00.000Z",
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Mark Notification as _visited_

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
id
required
integer

ID of the Notification

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Person

List People

Authorizations:
OAuth2 (cvut:profit:rbac:read) OAuth2 (cvut:profit:identities:rw)
query Parameters
includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive people in the response. If not specified or false, only active people are returned. Any other value (or no value) is interpreted as true.

q
string

Filter people by firstName, lastName and username or their parts (but it matches only full words).

role
string
Example: role=T-PROFIT-18000-OPONENT-ZAVERECNE-PRACE

Filter people by their role.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Person)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Person

Authorizations:
OAuth2 (cvut:profit:rbac:read) OAuth2 (cvut:profit:identities:rw)
path Parameters
username
required
string
Example: flynnkev

Responses

Response Schema: application/json
titlesPre
required
string
Default: ""

Pre-nominal title(s) of the person or an empty string if none.

firstName
required
string

First name(s) of the person.

lastName
required
string

Last name(s) of the person.

titlesPost
required
string
Default: ""

Post-nominal title(s) of the person or an empty string if none.

username
required
string >= 3 characters ^[a-z0-9_.-]+$

CTU username of the Person.

kosId
number Nullable

ID of the Person in KOS.

email
required
string <email>

The preferred email address of the Person for sending notifications.

roles
required
Array of strings unique

A list of the Person's roles (both business and technical) relevant to ProjectsFIT.

active
required
boolean
Default: true

Whether this Person's account is still active or not.

required
object (PersonSettings)

Person (user) settings

Array of objects

A list of Studies of the Person, if any.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
Example
{
  • "username": "grodipet",
  • "kosId": 654123,
  • "titlesPre": "",
  • "firstName": "Peter",
  • "lastName": "Grodin",
  • "titlesPost": "",
  • "email": "grodipet@fit.cvut.cz",
  • "roles": [
    ],
  • "studies": [
    ],
  • "active": true,
  • "settings": {
    },
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Create Person

Authorizations:
OAuth2 (cvut:profit:identities:rw)
path Parameters
username
required
string
Example: flynnkev
Request Body schema: application/json
firstName
required
string

First name(s) of the person.

lastName
required
string

Last name(s) of the person.

kosId
number Nullable

ID of the Person in KOS.

email
required
string <email>

The preferred email address of the Person for sending notifications.

roles
required
Array of strings unique

A list of the Person's roles (both business and technical) relevant to ProjectsFIT.

active
boolean
Default: true

Whether this Person's account is still active or not.

titlesPre
string
Default: ""

Pre-nominal title(s) of the person or an empty string if none.

titlesPost
string
Default: ""

Post-nominal title(s) of the person or an empty string if none.

object (PersonSettings)

Person (user) settings

Responses

Request samples

Content type
application/json
{
  • "kosId": 654120,
  • "titlesPre": "",
  • "firstName": "Meredith Rodney",
  • "lastName": "McKay",
  • "titlesPost": "Ph.D.",
  • "email": "rodney.mckay@fit.cvut.cz",
  • "roles": [
    ],
  • "settings": {
    }
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Update Person

Authorizations:
OAuth2 (cvut:profit:identities:rw)
path Parameters
username
required
string
Example: flynnkev
header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
active
boolean
Default: true

Whether this Person's account is still active or not.

titlesPre
string
Default: ""

Pre-nominal title(s) of the person or an empty string if none.

titlesPost
string
Default: ""

Post-nominal title(s) of the person or an empty string if none.

object (PersonSettings)

Person (user) settings

firstName
string

First name(s) of the person.

lastName
string

Last name(s) of the person.

kosId
number Nullable

ID of the Person in KOS.

email
string <email>

The preferred email address of the Person for sending notifications.

roles
Array of strings unique

A list of the Person's roles (both business and technical) relevant to ProjectsFIT.

Responses

Request samples

Content type
application/merge-patch+json
{
  • "active": true,
  • "titlesPre": "MSc",
  • "titlesPost": "Ph.D.",
  • "settings": {
    },
  • "firstName": "Meredith Rodney",
  • "lastName": "McKay",
  • "kosId": 0,
  • "email": "user@example.com",
  • "roles": [
    ]
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Thesis Reviewer Proposal

List Reviewer Proposals

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
proponent
string
Deprecated
Example: proponent=flynnkev

Filter proposals with the specified proponent.

reviewer
string
Deprecated
Example: reviewer=flynnkev

Filter proposals with the specified reviewer.

state
string (ProposalState)
Deprecated
Enum: "pending" "accepted" "rejected" "cancelled"

State of a proposal process. This is used for Thesis Change Request and Reviewer Proposal.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (ReviewerProposal)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Reviewer Proposal

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
proposalId
required
integer

ID of the Reviewer Proposal

Responses

Response Headers
Last-Modified
string
Example: "Wed, 21 Oct 2015 07:28:00 GMT"

Date and time at which the resource (returned object) was last modified.

Response Schema: application/json
id
required
number

Unique ID.

required
ThesisRef (object) or Thesis (object)

The Thesis for which this proposal was created.

state
required
string (ProposalState)
Enum: "pending" "accepted" "rejected" "cancelled"

State of a proposal process. This is used for Thesis Change Request and Reviewer Proposal.

reviewerAcceptance
required
string
Enum: "pending" "accepted" "rejected"

State of acceptance by the Reviewer.

specOfficerApproval
required
string
Enum: "pending" "accepted" "rejected"

State of approval by the Specialization Officer.

required
PersonRef (object) or Person (object)

The proposed Reviewer.

required
PersonRef (object) or Person (object)

The Person who proposed this Reviewer.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
{
  • "id": 456321,
  • "state": "pending",
  • "reviewerAcceptance": "pending",
  • "specOfficerApproval": "accepted",
  • "thesis": {
    },
  • "reviewer": {
    },
  • "proponent": {
    },
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Accept/approve Reviewer Proposal

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
proposalId
required
integer

ID of the Reviewer Proposal

query Parameters
role
required
string
Enum: "reviewer" "specOfficer"

The role with which the proposal should be accepted or approved.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Reject Reviewer Proposal

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
proposalId
required
integer

ID of the Reviewer Proposal

query Parameters
role
required
string
Enum: "proponent" "reviewer" "specOfficer"

The role with which the proposal should be rejected.

Request Body schema: application/json

A message with the reason of the rejection.

message
required
string

Text of the message.

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

List Thesis' Reviewer Proposals

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

query Parameters
limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (ReviewerProposal)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Propose Reviewer

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

Request Body schema: application/json
required
object (PersonRef)

Reference to a Person resource (used in request bodies).

Responses

Request samples

Content type
application/json
{
  • "reviewer": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Specialization

List Specializations

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
studyDegree
string (StudyDegree)
Enum: "bachelor" "master"

Degree of study

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Specialization)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Specialization

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
code
required
string^[a-zA-Z0-9_-]+$
Example: MI-ZI

Specialization code unique in the scope of ProjectsFIT

Responses

Response Schema: application/json
code
required
string^[a-zA-Z0-9_-]+$

Specialization code unique in the scope of ProjectsFIT.

branchId
required
number

ID of the underlying study branch in KOS.

studyPlanCodes
required
Array of strings

A set of study plans codes that identify this specialization in a case when there are more specializations with the same branchId.

It may be empty if there's no ambiguity. Each study plan code must be unique across all specializations.

It's used only to assign a student's specialization based on the data from KOS.

departmentCode
required
number [ 0 .. 99999 ]

Numerical code of the organizational unit (department) guaranteeing this specialization.

nameCs
required
string

Czech name.

nameEn
required
string

English name.

studyDegree
required
string (StudyDegree)
Enum: "bachelor" "master"

Degree of study

programNameCs
required
string

Czech name of the study program of this specialization for the thesis printout.

programNameEn
required
string

English name of the study program of this specialization for the thesis printout.

active
required
boolean
Default: true

Whether this specialization is still active or not.

refreshedAt
required
string <date-time>

The last date and time at which this object was synchronized with KOS.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
{
  • "code": "MI-ZI",
  • "branchId": 123,
  • "studyPlanCodes": [
    ],
  • "departmentCode": 18105,
  • "nameCs": "Znalostní inženýrství",
  • "nameEn": "Knowledge Engineering",
  • "programNameCs": "Informatika",
  • "programNameEn": "Informatics",
  • "studyDegree": "master",
  • "active": true,
  • "refreshedAt": "2020-01-02T03:00:00.000Z",
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Study

List Studies

Authorizations:
OAuth2 (cvut:profit:rbac:read) OAuth2 (cvut:profit:identities:rw)
query Parameters
personQuery
string
Example: personQuery=flynnkev

Filter studies by the person's firstName, lastName and username or their parts (but it matches only full words).

includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive studies in the response. If not specified or false, only active studies are returned. Any other value (or no value) is interpreted as true.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Study)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Study

Authorizations:
OAuth2 (cvut:profit:rbac:read) OAuth2 (cvut:profit:identities:rw)
path Parameters
id
required
integer

Responses

Response Schema: application/json
id
required
number

Unique KOS ID of the study (named as "student" in KOS).

required
PersonRef (object) or Person (object)

Associated person.

username
required
string >= 3 characters ^[a-z0-9_.-]+$

Associated person's username.

required
SpecializationRef (object) or Specialization (object)

Study specialization.

hasThesis
required
boolean

Whether this study currently has a Thesis assigned

branchId
required
number

Branch ID in KOS.

studyPlanCode
required
string

Study plan code.

active
required
boolean
Default: true

Whether this Study is still active or not.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
{
  • "id": 4776,
  • "person": {
    },
  • "username": "grodipet",
  • "specialization": {
    },
  • "hasThesis": false,
  • "branchId": 123456,
  • "studyPlanCode": "MIE-ZI.2013",
  • "active": true,
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Create Study

Authorizations:
OAuth2 (cvut:profit:identities:rw)
path Parameters
id
required
integer
Request Body schema: application/json
required
object (PersonRef)

Reference to a Person resource (used in request bodies).

object (SpecializationRef)

Reference to a Specialization resource (used in request bodies).

active
required
boolean
Default: true

Whether this Study is still active or not.

branchId
required
number

Branch ID in KOS.

studyPlanCode
required
string

Study plan code.

Responses

Request samples

Content type
application/json
{
  • "person": {
    },
  • "specialization": {
    },
  • "branchId": 123456,
  • "studyPlanCode": "MIE-ZI.2013",
  • "active": true
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Update Study

If the patch includes studyPlanCode or branchId and no specialization, then the specialization is automatically updated according to the study's studyPlanCode or branchId.

Authorizations:
OAuth2 (cvut:profit:identities:rw)
path Parameters
id
required
integer
header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
active
boolean
Default: true

Whether this Study is still active or not.

branchId
number

Branch ID in KOS.

studyPlanCode
string

Study plan code.

object (SpecializationRef)

Reference to a Specialization resource (used in request bodies).

Responses

Request samples

Content type
application/merge-patch+json
{
  • "active": true,
  • "branchId": 0,
  • "studyPlanCode": "MIE-ZI.2013",
  • "specialization": {
    }
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Thesis

List Theses

Returns theses by given filter. Theses with mainState draft, archived or deleted are not included.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
assignee
string

Filter theses by the assignee using a text search on person's username, first name and last name.

description
string
evaluationYear
integer
Example: evaluationYear=2022

Year of thesis defense/evaluation

language
Array of strings (ThesisLanguageList)
Items Enum: "cs" "en" "sk"
Example: language=en

Filter theses in the specified languages. Expects a comma-separated list of languages (cs, en or sk).

q
string

Fulltext query

reviewer
string

Filter theses by the reviewer using a text search on person's username, first name and last name.

specialization
Array of strings
Example: specialization=BI-WSI,NI-TI

Filter theses for the specified specializations (one of). Expects a comma-separated list of specialization codes.

states
string (ThesisMainState)
Enum: "draft" "proposed" "assigned" "review" "readyForDefence" "evaluated" "archived" "deleted"
Example: states=proposed,changeable.assigned.*

Filter theses in the specified states (one of). Expects a comma-separated list of thesis main states or dot-separated state paths. It may include wildcards: * matches one or more substates (path components).

studyDegree
Array of strings (StudyDegreeList)
Items Enum: "bachelor" "master"
Example: studyDegree=bachelor

Filter theses for the specified study degrees. Expects a comma-separated list of study degrees (bachelor or master).

supervisor
string

Filter theses by the supervisor using a text search on person's username, first name and last name.

title
string
validUntil
Array of strings
Example: validUntil=B202,B212

Filter theses by the semester until which they are valid.

verifiedByFtOfficer
boolean

Filter theses by property verifiedByFtOfficer.

withoutReviewer
boolean

Filter theses by missing reviewer.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Thesis)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create Thesis

Authorizations:
OAuth2 (cvut:profit:rbac:write)
Request Body schema: application/json
StudyRef (object) or any

Student assigned to this Thesis assignment.

object (PersonRef)

Reference to a Person resource (used in request bodies).

description
string <= 3400 characters
Default: ""

Text of the Thesis Assignment with instructions and requirements for the student written in the language specified by language.

language
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

LicenseType (string) or any
Default: "open"

TODO

supervisorWillProposeReviewer
boolean
Default: false

This flag indicates if the supervisor would like and will propose the reviewer, so the Specialization Officer doesn't have to look for them.

TopicRef (object) or Topic (object) or any
Default: null

Thesis topic this thesis (assignment) is based on.

titleCs
required
string >= 5 characters

Czech title.

titleEn
required
string >= 5 characters

English title.

Responses

Request samples

Content type
application/json
Example
{
  • "titleCs": "Zpětná analýza Antického hyperpohonu",
  • "titleEn": "Reverse Engineering of the Ancients’ Hyperdrive",
  • "description": "Perform reverse engineering of the Ancients’ hyperdrive engine.\n\nFirst, describe the theory behind faster than light travelling with focus on hyperspace travelling. Analyse the Ancients’ hyperdrive engine, describe its components and explain how it works. Finally, create a computer simulation of the engine.",
  • "language": "en",
  • "licenseType": "open",
  • "supervisorWillProposeReviewer": false
}

Response samples

Content type
application/json
{
  • "id": 0
}

Theses Metadata

Metadata about the Theses resource.

Authorizations:
OAuth2 (cvut:profit:rbac:read)

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{
  • "properties": {
    }
}

Get Thesis

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

Responses

Response Headers
Last-Modified
string
Example: "Wed, 21 Oct 2015 07:28:00 GMT"

Date and time at which the resource (returned object) was last modified.

Response Schema: application/json
titleCs
required
string >= 5 characters

Czech title.

titleEn
required
string >= 5 characters

English title.

description
required
string <= 3400 characters
Default: ""

Text of the Thesis Assignment with instructions and requirements for the student written in the language specified by language.

language
required
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

required
LicenseType (string) or any
Default: "open"

TODO

object or Study (object) or any

The student (more precisely, his or her study) assigned to work on this Thesis Assignment. It can be undefined in the draft state only.

SpecializationRef (object) or Specialization (object) or any

The study Specialization for which this Thesis Assignment is intended. This property is automatically set to the Assignee's Study Specialization when entering the proposed state; it's not set in the draft state.

TopicRef (object) or Topic (object) or any
Default: null

Thesis topic this thesis (assignment) is based on.

id
required
number

Unique ID.

abstractCs
string <= 3400 characters Nullable

Czech abstract of the thesis text.

abstractEn
string <= 3400 characters Nullable

English abstract of the thesis text.

Array of strings or array <= 20 items

Czech keywords for the thesis.

Array of strings or array <= 20 items

English keywords for the thesis.

required
object

URLs to Thesis files (final text PDF, attachments etc.)

required
Array of FileAttachment (object) or LinkAttachment (object) (Attachment)

URLs to thesis attachments

dspaceUrl
string Nullable

URL to Thesis' DSpace page

kosId
number Nullable

If this thesis has been assigned in KOS (using a POST request to KOSapi to resource /theses), then this property is the ID which KOS assigned to this thesis.

supervisorWillProposeReviewer
required
boolean
Default: false

This flag indicates if the supervisor would like and will propose the reviewer, so the Specialization Officer doesn't have to look for them.

PersonName (object) or any

Name of the assignee as it was at the time when the Thesis was assigned. This property is set automatically; it is undefined only when the assignee is undefined.

mainState
required
string (ThesisMainState)
Enum: "draft" "proposed" "assigned" "review" "readyForDefence" "evaluated" "archived" "deleted"

Main states of the Thesis.

TODO: Add link to the documentation of the state machine.

states
required
Array of strings unique

All states of the Thesis state machine.

TODO: Add link to the documentation of the state machine.

validUntil
string Nullable ^[A-Z][0-9][0-9][12]$

Semester code (e.g. B202 for summer semester of academic year 2020/21) after which the thesis is invalidated.

verifiedByFtOfficer
required
boolean

Whether the Thesis was verified by the FT Officer.

required
PersonRef (object) or Person (object)

The Supervisor of the Thesis. It's typically the same person who has created it.

required
object (PersonName)

Name of a person decomposed into four parts.

PersonRef (object) or Person (object) or any

The reviewer assigned to the Thesis. This is generally set by the system when a Reviewer Proposal is accepted and approved.

PersonName (object) or any

Name of the reviewer as it was at the time when the Thesis entered the review state. This property is set automatically; it is undefined only when the reviewer is undefined.

Grade (string) or any

The final evaluation of the thesis (as A-F grade) from the defence.

evaluationYear
number Nullable

The year of this thesis evaluation/defense

object or any

The thesis that supersedes this thesis. This can be only defined in state archived or evaluated.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

string or any

The date and time at which the thesis was approved by the Specialization Officer.

object

A map of actions allowed to be performed in the current state of the Thesis by the authorized user.

Response samples

Content type
application/json
Example
{
  • "id": 123456,
  • "titleCs": "Zpětná analýza Antického hyperpohonu",
  • "titleEn": "Reverse Engineering of the Ancients’ Hyperdrive",
  • "description": "Perform reverse engineering of the Ancients’ hyperdrive engine.\n\nFirst, describe the theory behind faster than light travelling with focus on hyperspace travelling. Analyse the Ancients’ hyperdrive engine, describe its components and explain how it works. Finally, create a computer simulation of the engine.",
  • "language": "en",
  • "licenseType": "open",
  • "supervisorWillProposeReviewer": false,
  • "mainState": "assigned",
  • "states": [
    ],
  • "validUntil": "B201",
  • "verifiedByFtOfficer": false,
  • "specialization": {
    },
  • "supervisor": {
    },
  • "supervisorFrozenName": {
    },
  • "assignee": {
    },
  • "assigneeFrozenName": {
    },
  • "files": { },
  • "attachments": [ ],
  • "modifiedAt": "2020-01-01T12:00:00.000Z"
}

Update Thesis

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
PersonRef (object) or any

The reviewer assigned to the Thesis.

StudyRef (object) or any

Student assigned to this Thesis assignment.

object (PersonRef)

Reference to a Person resource (used in request bodies).

abstractCs
string <= 3400 characters Nullable

Czech abstract of the thesis text.

abstractEn
string <= 3400 characters Nullable

English abstract of the thesis text.

Array of strings or array <= 20 items

Czech keywords for the thesis.

Array of strings or array <= 20 items

English keywords for the thesis.

object

URLs to Thesis files (final text PDF, attachments etc.)

Array of FileAttachment (object) or LinkAttachment (object) (Attachment)

URLs to thesis attachments

dspaceUrl
string Nullable

URL to Thesis' DSpace page

kosId
number Nullable

If this thesis has been assigned in KOS (using a POST request to KOSapi to resource /theses), then this property is the ID which KOS assigned to this thesis.

supervisorWillProposeReviewer
boolean
Default: false

This flag indicates if the supervisor would like and will propose the reviewer, so the Specialization Officer doesn't have to look for them.

PersonName (object) or any

Name of the assignee as it was at the time when the Thesis was assigned. This property is set automatically; it is undefined only when the assignee is undefined.

validUntil
string Nullable ^[A-Z][0-9][0-9][12]$

Semester code (e.g. B202 for summer semester of academic year 2020/21) after which the thesis is invalidated.

verifiedByFtOfficer
boolean

Whether the Thesis was verified by the FT Officer.

object (PersonName)

Name of a person decomposed into four parts.

PersonName (object) or any

Name of the reviewer as it was at the time when the Thesis entered the review state. This property is set automatically; it is undefined only when the reviewer is undefined.

Grade (string) or any

The final evaluation of the thesis (as A-F grade) from the defence.

object or any

The thesis that supersedes this thesis. This can be only defined in state archived or evaluated.

titleCs
string >= 5 characters

Czech title.

titleEn
string >= 5 characters

English title.

description
string <= 3400 characters
Default: ""

Text of the Thesis Assignment with instructions and requirements for the student written in the language specified by language.

language
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

LicenseType (string) or any
Default: "open"

TODO

SpecializationRef (object) or Specialization (object) or any

The study Specialization for which this Thesis Assignment is intended. This property is automatically set to the Assignee's Study Specialization when entering the proposed state; it's not set in the draft state.

TopicRef (object) or Topic (object) or any
Default: null

Thesis topic this thesis (assignment) is based on.

Responses

Request samples

Content type
application/merge-patch+json
{
  • "reviewer": {
    },
  • "assignee": {
    },
  • "supervisor": {
    },
  • "abstractCs": "string",
  • "abstractEn": "string",
  • "keywordsCs": [
    ],
  • "keywordsEn": [
    ],
  • "files": {
    },
  • "attachments": [
    ],
  • "dspaceUrl": "string",
  • "kosId": 0,
  • "supervisorWillProposeReviewer": false,
  • "assigneeFrozenName": {
    },
  • "validUntil": "B201",
  • "verifiedByFtOfficer": true,
  • "supervisorFrozenName": {
    },
  • "reviewerFrozenName": {
    },
  • "finalGrade": "A",
  • "supersededBy": {
    },
  • "titleCs": "string",
  • "titleEn": "string",
  • "description": "",
  • "language": "cs",
  • "licenseType": "open",
  • "specialization": {
    },
  • "topic": {
    }
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Archive Thesis

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Delete Thesis

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Approve printed copies

Final Thesis Officer approves the printed copies of the Thesis.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Accept proposed Thesis

Assignee accepts the proposed Thesis Assignment.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Reject proposed Thesis

Assignee rejects the proposed Thesis Assignment.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/json

A message with the reason of the rejection.

message
required
string

Text of the message.

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Approve proposed Thesis

Specialization Officer approves the proposed Thesis Assignment.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Propose Thesis

Submit the Thesis Assignment to the specialization officer for approval.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/json

An optional message for the Specialization Officer.

message
required
string

Text of the message.

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Revise proposed Thesis

Return the proposed Thesis Assignment for a revision.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/json

A message with the reason of returning the proposed Thesis for the revision.

message
required
string

Text of the message.

Responses

Request samples

Content type
application/json
{
  • "message": "string"
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Withdraw proposed Thesis

Withdraw the proposed Thesis Assignment from the state proposed back to draft.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Submit Thesis

Assignee submits Thesis.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Supersede Thesis

Create a copy of this evaluated thesis that supersedes the thesis. The new thesis will go directly to the state 'assigned' with pending submission and reviewer. The old thesis will be archived and marked as superseded by the new one.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/json
{
  • "id": 0
}

Get Thesis Assignment Printout

Returns data for printing a thesis assignment sheet.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

Responses

Response Schema:
approvedAt
string <date-time>
object (PersonName)

Name of a person decomposed into four parts.

departmentCode
required
number [ 0 .. 99999 ]

Numerical code of the organizational unit (department) guaranteeing this specialization.

description
required
string <= 3400 characters
Default: ""

Text of the Thesis Assignment with instructions and requirements for the student written in the language specified by language.

specialization
required
string
required
object (PersonName)

Name of a person decomposed into four parts.

studyProgram
required
string
required
object (PersonName)

Name of a person decomposed into four parts.

thesisTitle
required
string
thesisType
required
string (StudyDegree)
Enum: "bachelor" "master"

Degree of study

validity
string Nullable ^[A-Z][0-9][0-9][12]$

Semester code (e.g. B202 for summer semester of academic year 2020/21) after which the thesis is invalidated.

locale
required
string (Language)
Enum: "cs" "en"

Extract type of T's values.

Response samples

Content type
{
  • "approvedAt": "2021-04-01T12:00:00.000Z",
  • "approvedBy": {
    },
  • "departmentCode": 18102,
  • "description": "Perform reverse engineering of the Ancients’ hyperdrive engine.\n\nFirst, describe the theory behind faster than light travelling with focus on hyperspace travelling. Analyse the Ancients’ hyperdrive engine, describe its components and explain how it works. Finally, create a computer simulation of the engine.",
  • "specialization": "Knowledge Engineering",
  • "student": {
    },
  • "studyProgram": "Informatics",
  • "supervisor": {
    },
  • "thesisTitle": "Reverse Engineering of the Ancients’ Hyperdrive",
  • "thesisType": "master",
  • "validity": "B202",
  • "locale": "en"
}

Download Thesis Attachment

Download thesis attachment

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

filename
required
string
Example: data.zip

Thesis attachment filename

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Range
string
Example: bytes=200-1000

Requested range (inclusive, in bytes) of requested file to return.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Upload Thesis Attachment

Upload thesis attachment and update thesis attachments information list (attributes filename, href, currentSize, totalSize).

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

filename
required
string
Example: data.zip

Thesis attachment filename

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "detail": "string",
  • "instance": "string",
  • "status": 400,
  • "title": "string",
  • "type": "string"
}

Get thesis' eventlog

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

Responses

Response Schema: application/json
required
Array of objects (ThesesEventLog)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Thesis Final Text

If the assignee has already uploaded a PDF with the final text of the thesis, then this resource returns either the PDF file directly or redirects to the PDF file on DSpace.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Upload Thesis Final Text

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

Request Body schema: application/pdf
Schema not provided

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Thesis Report

Get Thesis Reports

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

query Parameters
sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (ThesisReport)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get Thesis Report

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
thesisId
required
integer

ID of the Thesis

type
required
string
Enum: "supervisor" "reviewer"

Responses

Response Headers
Last-Modified
string
Example: "Wed, 21 Oct 2015 07:28:00 GMT"

Date and time at which the resource (returned object) was last modified.

Response Schema:
id
required
number

Unique ID.

type
required
string (ThesisReportType)
Enum: "supervisor" "reviewer"

Type for thesis evaluation report.

required
ThesisRef (object) or Thesis (object)

The Thesis for which this report was created.

templateVersion
required
string

Version of the report template in format vYYYYMMDD.

language
required
string (Language)
Enum: "cs" "en"

Extract type of T's values.

score
required
number [ -1 .. 100 ]

The overall evaluation on scale 0 to 100 points (grade A to F), or -1 for undetermined. It must be ≥ 0 before submitting.

summary
required
string

The overall evaluation summary.

required
object (ReportCriteriaEvaluation)
defenseQuestions
string

Questions for the defense. Relevant only for report of type 'reviewer'.

kosId
number Nullable

The ID which KOS assigned to this report. This property is set after the report is submitted in KOS.

pdfUrl
string Nullable

URL of pre-generated PDF report. This is currently used only for old reports (template v20140114) migrated from the legacy ZP system and it's URL to DSpace.

string or any

The date and time at which this report was submitted, or null if the report has not been submitted yet, i.e. it's a draft.

createdAt
required
string <date-time>

The date and time at which this object was created.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
{
  • "id": 123,
  • "type": "supervisor",
  • "thesis": {
    },
  • "templateVersion": "v20210425",
  • "language": "en",
  • "score": 100,
  • "summary": "Excellent work. I recommend the thesis for a defense with the grade A.",
  • "criteriaEvaluation": {
    },
  • "kosId": 123456,
  • "createdAt": "2021-04-13T03:00:00.000Z",
  • "modifiedAt": "2021-04-13T12:00:00.000Z",
  • "submittedAt": "2021-04-13T18:00:00.000Z"
}

Save Thesis Report

Creates or updates the Thesis Report.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

type
required
string
Enum: "supervisor" "reviewer"
Request Body schema: application/json
summary
string

The overall evaluation summary.

language
required
string (Language)
Enum: "cs" "en"

Extract type of T's values.

templateVersion
required
string

Version of the report template in format vYYYYMMDD.

score
required
number [ -1 .. 100 ]

The overall evaluation on scale 0 to 100 points (grade A to F), or -1 for undetermined. It must be ≥ 0 before submitting.

required
object (ReportCriteriaEvaluation)
defenseQuestions
string

Questions for the defense. Relevant only for report of type 'reviewer'.

Responses

Request samples

Content type
application/json
{
  • "templateVersion": "v20210425",
  • "language": "en",
  • "score": 100,
  • "summary": "Excellent work. I recommend the thesis for a defense with the grade A.",
  • "criteriaEvaluation": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0
}

Submit Thesis Report

Submits the finished Thesis Report. After that, it will be written to KOS and the report can no longer be edited.

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
thesisId
required
integer

ID of the Thesis

type
required
string
Enum: "supervisor" "reviewer"
header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Topic

List Topics

Returns topics by given filter. Topics with visibility private are not included.

Authorizations:
OAuth2 (cvut:profit:rbac:read)
query Parameters
author
string

Filter topics by the author using a text search on person's username, first name and last name.

keywords
Array of strings
Example: keywords=keyword 1,keyword 2

Filter theses which have all of the specified keywords. Expects a comma separated list of strings which do not contain a comma themselves.

q
string

Fulltext query over the keywords, title, and description.

studyDegrees
Array of strings (StudyDegreeList)
Items Enum: "bachelor" "master"
Example: studyDegrees=bachelor

Filter topics for the specified study degrees. Expects a comma-separated list of study degrees (bachelor or master).

specializations
Array of strings
Example: specializations=BI-WSI-SI,NI-TI

Filter topics which are especially recommended for one of the specified specializations. Expects a comma-separated list of specialization codes.

limit
integer

Maximum number of objects to return.

offset
integer
Default: 0

Offset of the first object to return.

sort
string
Example: sort=titleCs,supervisor.username,-modifiedAt

A comma separated list of the properties to sort the results by. A nested property may be specified by the dot-notation (e.g. supervisor.username). The default sorting direction is ascending; for the descending order prefix the property path with a hyphen (-).

Responses

Response Schema: application/json
required
Array of objects (Topic)

Array of results for a current page.

required
object (Pagination)

Pagination metadata.

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create Topic

Authorizations:
OAuth2 (cvut:profit:rbac:write)
Request Body schema: application/json
description
string <= 6000 characters
Default: ""

Description of the topic with instructions and requirements. It can be in any language. It can even be simultaneously in multiple languages hence the maximum length is set very high.

keywords
Array of strings
Default: []

List of terms, which aid the filtering.

visibility
string (TopicVisibility)
Enum: "deleted" "private" "public"

Extract type of T's values.

studyDegrees
Array of strings (StudyDegree)
Default: []
Items Enum: "bachelor" "master"

For which “study degree” students (e.g., bachelor's students, master's students) is the topic especially suitable?

Note that study degrees are named programmeType in KOSapi.

Array of SpecializationRef (object) or Specialization (object)
Default: []

For students of which specializations is this topic especially suitable?

title
required
string >= 5 characters

Title of a topic can be either in Czech or in English. We do not particularly care.

language
required
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

Responses

Request samples

Content type
application/json
Example
{
  • "title": "Reverse Engineering of the Ancients’ Hyperdrive",
  • "description": "Perform reverse engineering of the Ancients’ hyperdrive engine.\n\nFirst, describe the theory behind faster than light travelling with focus on hyperspace travelling. Analyse the Ancients’ hyperdrive engine, describe its components and explain how it works. Finally, create a computer simulation of the engine.",
  • "language": "en",
  • "keywords": [
    ],
  • "studyDegrees": [
    ],
  • "specializations": [
    ],
  • "visibility": "private"
}

Response samples

Content type
application/json
{
  • "id": 0
}

Topics Metadata

Metadata about the Topics resource.

Authorizations:
OAuth2 (cvut:profit:rbac:read)

Responses

Response Schema: application/json
required
object

Response samples

Content type
application/json
{
  • "properties": {
    }
}

Get Topic

Authorizations:
OAuth2 (cvut:profit:rbac:read)
path Parameters
topicId
required
integer

ID of the Topic

Responses

Response Headers
Last-Modified
string
Example: "Wed, 21 Oct 2015 07:28:00 GMT"

Date and time at which the resource (returned object) was last modified.

Response Schema: application/json
id
required
number

Unique ID.

title
required
string >= 5 characters

Title of a topic can be either in Czech or in English. We do not particularly care.

description
required
string <= 6000 characters
Default: ""

Description of the topic with instructions and requirements. It can be in any language. It can even be simultaneously in multiple languages hence the maximum length is set very high.

language
required
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

keywords
required
Array of strings
Default: []

List of terms, which aid the filtering.

visibility
required
string (TopicVisibility)
Enum: "deleted" "private" "public"

Extract type of T's values.

studyDegrees
required
Array of strings (StudyDegree)
Default: []
Items Enum: "bachelor" "master"

For which “study degree” students (e.g., bachelor's students, master's students) is the topic especially suitable?

Note that study degrees are named programmeType in KOSapi.

required
Array of SpecializationRef (object) or Specialization (object)
Default: []

For students of which specializations is this topic especially suitable?

required
PersonRef (object) or Person (object)

Person who created the topic.

createdAt
required
string <date-time>

The date and time at which this object was created.

modifiedAt
required
string <date-time>

The last date and time at which this object was modified. This is being updated automatically.

Response samples

Content type
application/json
{
  • "title": "Reverse Engineering of the Ancients’ Hyperdrive",
  • "description": "Perform reverse engineering of the Ancients’ hyperdrive engine.\n\nFirst, describe the theory behind faster than light travelling with focus on hyperspace travelling. Analyse the Ancients’ hyperdrive engine, describe its components and explain how it works. Finally, create a computer simulation of the engine.",
  • "language": "en",
  • "keywords": [
    ],
  • "studyDegrees": [
    ],
  • "specializations": [
    ],
  • "visibility": "private",
  • "id": 123456,
  • "createdAt": "2020-01-01T01:00:00.000Z",
  • "modifiedAt": "2020-01-01T12:00:00.000Z",
  • "author": {
    }
}

Update Topic

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
topicId
required
integer

ID of the Topic

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Request Body schema: application/merge-patch+json
title
string >= 5 characters

Title of a topic can be either in Czech or in English. We do not particularly care.

description
string <= 6000 characters
Default: ""

Description of the topic with instructions and requirements. It can be in any language. It can even be simultaneously in multiple languages hence the maximum length is set very high.

language
string (ThesisLanguage)
Enum: "cs" "en" "sk"

Extract type of T's values.

keywords
Array of strings
Default: []

List of terms, which aid the filtering.

visibility
string (TopicVisibility)
Enum: "deleted" "private" "public"

Extract type of T's values.

studyDegrees
Array of strings (StudyDegree)
Default: []
Items Enum: "bachelor" "master"

For which “study degree” students (e.g., bachelor's students, master's students) is the topic especially suitable?

Note that study degrees are named programmeType in KOSapi.

Array of SpecializationRef (object) or Specialization (object)
Default: []

For students of which specializations is this topic especially suitable?

PersonRef (object) or Person (object)

Person who created the topic.

Responses

Request samples

Content type
application/merge-patch+json
{
  • "title": "string",
  • "description": "",
  • "language": "cs",
  • "keywords": [ ],
  • "visibility": "deleted",
  • "studyDegrees": [ ],
  • "specializations": [ ],
  • "author": {
    }
}

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}

Delete Topic

Authorizations:
OAuth2 (cvut:profit:rbac:write)
path Parameters
topicId
required
integer

ID of the Topic

header Parameters
If-Unmodified-Since
string
Example: Wed, 21 Oct 2015 07:28:00 GMT

Make a conditional request that will be accepted only if the object to be modified has not been last modified after the given date. Otherwise the request will not be accepted and the response will be a 412 (Precondition Failed) error.

Responses

Response samples

Content type
application/problem+json
{
  • "status": 403,
  • "title": "Insufficient Permission"
}