Theses » Historie » Verze 3

Verze 2 (Jakub Jirůtka, 2013-07-29 12:08) → Verze 3/13 (Jakub Jirůtka, 2013-07-29 13:34)

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

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 vstupu

<pre><code class="xml">
<?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>
</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

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@).
* Pokud _není_ je ve stavu [[ThesisState|volné]] (@state != AVAILABLE@), nelze měnit přiřazeného studenta (@student@).
* …a podmínky z [[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

h3. Podmínky

* Téma musí být ve stavu [[ThesisState|volné]] (@state = AVAILABLE@).