Theses » Historie » Verze 8
Verze 7 (Jakub Jirůtka, 2013-07-29 14:53) → Verze 8/13 (Jakub Jirůtka, 2015-04-21 17:54)
h1. Témata závěrečných prací
{{>toc}}
h2. GET /theses
Vrátí všechna témata závěrečných prácí.
* *URI:* {{base_url}}/api/3/theses/
* *Typ zdroje:* Atom Feed
* *Typ obsahu:* [[Thesis]]
* *Formáty:* [[atom]], [[xml]]
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#limit|limit]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]], [[URLParameters#offset|offset]], [[URLParameters#orderBy|orderBy]], [[URLParameters#query|query]]
h2. GET /theses/{id}
Vrátí téma závěrečné práce podle jejího ID.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* [[atom]], [[xml]]
* *Proměnné:* @{id}@ id závěrečné práce
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]]
h2. POST /theses
Přidá nové téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* application/atom+xml, application/xml
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Musí být zadán alespoň český název a cílový obor (z něj plyne katedra a typ práce), nebo český název, katedra a cílový typ práce (bakalářská/diplomová/doktorská).
* Pokud stav _není_ [[ThesisState|volné]] (@state != AVAILABLE@), pak musí být zadán student (@student != null@). _(automaticky provede rezervaci a příp. přiřazení tématu)_
* Pokud je zadán student, (@student != null@), pak typ studijního programu (etapa) studenta musí odpovídat typu práce (@student.programme.type = this.type@).
* Pokud je zadán cílový obor a student (@branch != null && student != null@), pak obor studenta musí odpovídat cílovému oboru (@student.branch = this.branch@)
h3. Ukázka komunikace
<pre><code class="xml">
POST /api/3/theses HTTP/1.1
Host: kosapi.fit.cvut.cz
Content-Type: application/atom+xml; charset=UTF-8
Authorization: Bearer put-access-token-here
<?xml version="1.0" encoding="UTF-8"?>
<atom:entry xmlns="http://kosapi.feld.cvut.cz/schema/3"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<atom:content atom:type="xml" xsi:type="thesis">
<branch xlink:href="branches/4779/" />
<department xlink:href="divisions/18102/" />
<description>Prostudujte používané metodiky návrhu...</description>
<literature>Pracovní postup k rozvrhu, Tril, 1998</literature>
<name xml:lang="cs">KOSapi - verze 3</name>
<name xml:lang="en">KOSapi - third version</name>
<opponent xlink:href="people/valenta/" />
<state>RESERVED</state>
<student xlink:href="students/jirutjak/" />
<supervisor xlink:href="people/kadleto2/" />
<type>MASTER</type>
</atom:content>
</atom:entry>
--
Status Code: 201 Created
Content-Length: 0
Date: Mon, 29 Jul 2013 11:42:33 GMT
Location: https://kosapi.fit.cvut.cz/api/3/theses/493466966705
</code></pre>
h2. PUT /theses/{id}
Modifikuje dané téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* application/atom+xml, application/xml
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Pokud je ve stavu [[ThesisState|zadáno]] (@state = ASSIGNED@), lze měnit pouze atribut stavu (@state@).
* Pokud _není_ ve stavu [[ThesisState|volné]] (@state != AVAILABLE@), nelze měnit cílový obor (@branch@) ani typ práce (@type@).
* Pokud _není_ je ve stavu [[ThesisState|volné]] (@state != AVAILABLE@), nelze měnit přiřazeného studenta (@student@).
* …a podmínky z [[Theses#POST-theses| POST /theses]].
h2. DELETE /theses/{id}
Odstraní dané téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Téma musí být ve stavu [[ThesisState|volné]] (@state = AVAILABLE@).
h2. GET /theses/{id}/reviews
Vrátí posudky závěrečné práce. Jedna práce může mít 1-2 vedoucí a 1-4 oponenty, přičemž každý může napsat nejvýše jeden posudek.
* *URI:* {{base_url}}/api/3/theses/{id}/reviews
* *Typ zdroje:* Atom Feed
* *Typ obsahu:* [[ThesisReview]]
* *Formáty:* [[atom]], [[xml]]
* *Proměnné:* @{id}@ id závěrečné práce
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#limit|limit]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]], [[URLParameters#offset|offset]], [[URLParameters#orderBy|orderBy]], [[URLParameters#query|query]]
h2. POST /theses/{id}/reviews
Vytvoří posudek závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}/reviews
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[ThesisReview]]
* *Formáty:* application/atom+xml, application/xml
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Práce musí být ve stavu [[ThesisState|zadáno]] (@state = ASSIGNED@).
* Autor posudku musí být učitel, který je vedoucím nebo oponentem práce.
* Jeden učitel může k dané práci zadat nejvýše jeden posudek.
{{>toc}}
h2. GET /theses
Vrátí všechna témata závěrečných prácí.
* *URI:* {{base_url}}/api/3/theses/
* *Typ zdroje:* Atom Feed
* *Typ obsahu:* [[Thesis]]
* *Formáty:* [[atom]], [[xml]]
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#limit|limit]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]], [[URLParameters#offset|offset]], [[URLParameters#orderBy|orderBy]], [[URLParameters#query|query]]
h2. GET /theses/{id}
Vrátí téma závěrečné práce podle jejího ID.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* [[atom]], [[xml]]
* *Proměnné:* @{id}@ id závěrečné práce
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]]
h2. POST /theses
Přidá nové téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* application/atom+xml, application/xml
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Musí být zadán alespoň český název a cílový obor (z něj plyne katedra a typ práce), nebo český název, katedra a cílový typ práce (bakalářská/diplomová/doktorská).
* Pokud stav _není_ [[ThesisState|volné]] (@state != AVAILABLE@), pak musí být zadán student (@student != null@). _(automaticky provede rezervaci a příp. přiřazení tématu)_
* Pokud je zadán student, (@student != null@), pak typ studijního programu (etapa) studenta musí odpovídat typu práce (@student.programme.type = this.type@).
* Pokud je zadán cílový obor a student (@branch != null && student != null@), pak obor studenta musí odpovídat cílovému oboru (@student.branch = this.branch@)
h3. Ukázka komunikace
<pre><code class="xml">
POST /api/3/theses HTTP/1.1
Host: kosapi.fit.cvut.cz
Content-Type: application/atom+xml; charset=UTF-8
Authorization: Bearer put-access-token-here
<?xml version="1.0" encoding="UTF-8"?>
<atom:entry xmlns="http://kosapi.feld.cvut.cz/schema/3"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<atom:content atom:type="xml" xsi:type="thesis">
<branch xlink:href="branches/4779/" />
<department xlink:href="divisions/18102/" />
<description>Prostudujte používané metodiky návrhu...</description>
<literature>Pracovní postup k rozvrhu, Tril, 1998</literature>
<name xml:lang="cs">KOSapi - verze 3</name>
<name xml:lang="en">KOSapi - third version</name>
<opponent xlink:href="people/valenta/" />
<state>RESERVED</state>
<student xlink:href="students/jirutjak/" />
<supervisor xlink:href="people/kadleto2/" />
<type>MASTER</type>
</atom:content>
</atom:entry>
--
Status Code: 201 Created
Content-Length: 0
Date: Mon, 29 Jul 2013 11:42:33 GMT
Location: https://kosapi.fit.cvut.cz/api/3/theses/493466966705
</code></pre>
h2. PUT /theses/{id}
Modifikuje dané téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[Thesis]]
* *Formáty:* application/atom+xml, application/xml
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Pokud je ve stavu [[ThesisState|zadáno]] (@state = ASSIGNED@), lze měnit pouze atribut stavu (@state@).
* Pokud _není_ ve stavu [[ThesisState|volné]] (@state != AVAILABLE@), nelze měnit cílový obor (@branch@) ani typ práce (@type@).
* Pokud _není_ je ve stavu [[ThesisState|volné]] (@state != AVAILABLE@), nelze měnit přiřazeného studenta (@student@).
* …a podmínky z [[Theses#POST-theses| POST /theses]].
h2. DELETE /theses/{id}
Odstraní dané téma závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Téma musí být ve stavu [[ThesisState|volné]] (@state = AVAILABLE@).
h2. GET /theses/{id}/reviews
Vrátí posudky závěrečné práce. Jedna práce může mít 1-2 vedoucí a 1-4 oponenty, přičemž každý může napsat nejvýše jeden posudek.
* *URI:* {{base_url}}/api/3/theses/{id}/reviews
* *Typ zdroje:* Atom Feed
* *Typ obsahu:* [[ThesisReview]]
* *Formáty:* [[atom]], [[xml]]
* *Proměnné:* @{id}@ id závěrečné práce
* *Parametry:* [[URLParameters#fields|fields]], [[URLParameters#lang|lang]], [[URLParameters#limit|limit]], [[URLParameters#locEnums|locEnums]], [[URLParameters#multilang|multilang]], [[URLParameters#offset|offset]], [[URLParameters#orderBy|orderBy]], [[URLParameters#query|query]]
h2. POST /theses/{id}/reviews
Vytvoří posudek závěrečné práce.
* *URI:* {{base_url}}/api/3/theses/{id}/reviews
* *Typ zdroje:* Atom Entry
* *Typ obsahu:* [[ThesisReview]]
* *Formáty:* application/atom+xml, application/xml
* *Proměnné:* @{id}@ id závěrečné práce
* **Scope:** urn:ctu:oauth:kosapi:theses.readwrite (privilegovaný)
h3. Podmínky
* Práce musí být ve stavu [[ThesisState|zadáno]] (@state = ASSIGNED@).
* Autor posudku musí být učitel, který je vedoucím nebo oponentem práce.
* Jeden učitel může k dané práci zadat nejvýše jeden posudek.