**CIAI Project Weservice Requests documentation**
----
  _Documentação dos Requests disponiveis_

* **Autenticação**

  * **URL**

    _/login_
  
  *  **Method**

    POST 

  *  **Data Params**
 
     - `username=[string]` : username do utilizador
     - `password=[string]` : password do utilizador
     - `type=[int]` : tipo de utilizador

***

* **Registo**

  * **URL**

    _/account/create_

  *  **Method**

    POST 
  
  *  **Data Params**
    
    - `name=[string]` : nome do utilizador
    - `username=[string]` : username do utilizador
    - `password=[string]` : password do utilizador
    - `type=[int]` : tipo de utilizador
    - `type=[degree]` : curso do estudante (caso seja o registo de um novo estudante)

***

* **Lista de cursos e as respetivas cadeiras**

  * **URL**

    _/degree/view/all_

  *  **Method**

    GET 

***

* **Detalhes de um estudante**

  * **URL**

    _/student/view/{number}_

  *  **Method**

    GET 

  *  **Url params**

    - `number=[int]` : numero do estudante

***

* **Editar detalhes de um estudante**

  * **URL**

    _/student/edit/{number}_

  *  **Method**

    POST 

  *  **Url params**

    - `number=[int]` : numero do estudante

  *  **Data params**

    - `photo=[string]` : url da foto do estudante
    - `email=[string]` : email pessoal do estudante
    - `address=[string]` : morada do estudante
    - `birthday=[string]` : data de nascimento do estudante

***

* **Resultados de um estudante**

  * **URL**

    _/student/view/{number}/results_

  *  **Method**

    GET 

  *  **Url params**

    - `number=[int]` : numero do estudante

***

* **Edições atuais de um estudante**

  * **URL**

    _/student/view/{number}/editions_

  *  **Method**

    GET 

  *  **Url params**

    - `number=[int]` : numero do estudante

***

* **Detalhes de um professor**

  * **URL**

    _/professor/view/{id}_

  *  **Method**

    GET 

  *  **Url params**

    - `id=[int]` : id do professor

***

* **Editar detalhes de um professor**

  * **URL**

    _/professor/edit/{id}_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id do professor

  *  **Data params**

    - `photo=[string]` : url da foto do professor
    - `name=[string]` : nome do professor

***

* **Edições atuais de um professor**

  * **URL**

    _/professor/view/{id}/editions_

  *  **Method**

    GET 

  *  **Url params**

    - `id=[int]` : id do professor

***

* **Adicionar professor a uma edição**

  * **URL**

    _/edition/{id}/add/professor_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `professor_id=[int]` : id do professor a adicionar

***

* **Apagar professor de uma edição**

  * **URL**

    _/edition/{id}/remove/professor_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `professor_id=[int]` : id do professor a apagar

***

* **Listar professores de uma edição**

  * **URL**

    _/edition/view/{id}/professors_

  *  **Method**

    GET 

  *  **Url params**

    - `id=[int]` : id da edição

***

* **Adicionar estudante a uma edição**

  * **URL**

    _/edition/{id}/add/student_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `number=[int]` : numero do estudante a adicionar

***

* **Apagar estudante de uma edição**

  * **URL**

    _/edition/{id}/remove/student_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `number=[int]` : numero do estudante a apagar

***

* **Listar estudantes de uma edição**

  * **URL**

    _/edition/view/{id}/students_

  *  **Method**

    GET 

  *  **Url params**

    - `id=[int]` : id da edição

***

* **Atribuir nota de uma avaliação a um estudante**

  * **URL**

    _/edition/{id}/grade/student_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `evaluation_id=[int]` : id da avaliação a atribuir a nota
    - `number=[int]` : numero do estudante
    - `value=[float]` : valor da nota

***

* **Adicionar uma avaliação a uma edição**

  * **URL**

    _/edition/{id}/add/evaluation_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `name=[string]` : nome da avaliação
    - `date=[string]` : data da avaliação
    - `time=[string]` : hora da avaliação
    - `weight=[string]` : peso da avaliação

***

* **Editar uma avaliação de uma edição**

  * **URL**

    _/edition/{id}/edit/evaluation_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `evaluation_id=[int]` : id da avaliação a editar
    - `name=[string]` : nome da avaliação
    - `date=[string]` : data da avaliação
    - `time=[string]` : hora da avaliação
    - `weight=[string]` : peso da avaliação

***

* **Apagar uma avaliação de uma edição**

  * **URL**

    _/edition/{id}/remove/evaluation_

  *  **Method**

    POST 

  *  **Url params**

    - `id=[int]` : id da edição

  *  **Data params**

    - `evaluation_id=[int]` : id da avaliação a apagar

***

* **Listar avaliações de uma edição**

  * **URL**

    _/edition/view/{id}/evaluations_

  *  **Method**

    GET 

  *  **Url params**

    - `id=[int]` : id da edição