Skip to content

thevajko/cv-09

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VAII Cvičenie 09

Momentálne je otvorená vetva MAIN, ktorá obsahuje štartér. Riešenie obsahuje vetva SOLUTION.

Úlohy na cvičenie

Jednoduchá práca s JSON vo frameworku Vaííčko

  1. Vytvorte metódu showJson() v kontroléri HomeController. Metóda vytvorí jednu správu (model Message) a zobrazí ju vo formáte JSON.
  2. Preštudujte si pohľad sendJson.view.php. Čo robí?
  3. Vytvorte metódu receiveJson() v kontroléri HomeController. Metóda príjme JSON data správy a pošle ich späť.

Tvorba API pre chat aplikáciu

Cieľom tohto cvičenia je vytvoriť webové API k serverovej časti chatovacej aplikácie s použitím frameworku vajiíčko. Samotný chat budeme vytvárať na ďalšom cvičení.

Preštudujte si súbory v štartéri. V adresári docker\sql sa nachádza súbor ddl.sql, ktorý Vám vytvorí DB tabuľky, potrebné pre tento projekt. Takisto štartér obsahuje Vaííčko framework. Projekt obsahuje aj SimpleAuthenticator na jednoduché overenie mena a hesla. V projekte sa takisto nachádzajú aj pripravené kontroléry AuthApiController a MessageApiController. V nich budete implementovať jednotlivé akcie. V projekte sú aj modely Login a Message, ktoré zodpovedajú tabuľkám v DB. Všimnite si implementáciu metód isActive() a getAllActive() v triede Login. Prezrite si aj testy v súbore \test\Tests.http. Skúste ich spustiť. Úlohou cvičenia bude implementovať metódy kontrolérov tak, aby všetky testy prebehli úspešne.

  1. AuthApiController - Má na starosti operácie týkajúce sa používateľa a vracia informácie o ňom. Obsahuje nasledovné akcie:
    1. index - Keďže ide o API, akcia index bude vracať HTTP kód 501 Not Implemented.
    2. login - Akcia bude očakávať odoslanie prihlasovacích údajov v JSON objekte s dvomi atribútmi login a password. V prípade, ak ich objekt nebude obsahovať, alebo budú mať prázdnu hodnotu, vráti HTTP kód 400 Bad Request. Ak sa podarí prihlásenie, vytvorí sa nový model Login s aktuálnym časom. Ak už prihlásenie existuje, upraví sa jeho atribút last_action. Po úspešnom overení používateľa sa vráti klientovi prázdna odpoveď ( empty response).
    3. logout - Skontroluje, či je používateľ prihlásený. Ak áno, odhlási ho a zmaže záznam o jeho logine z DB. Ak nie je prihlásený, neurobí nič. Na konci vždy vráti klientovi empty response.
    4. status - Ak je používateľ prihlásený, klient dostane JSON odpoveď s objektom, ktorý obsahuje atribút login a má hodnotu aktuálne mena prihláseného používateľa. Neprihlásenému používateľovi vráti HTTP kód 401 Unauthorized.
    5. activeUsers - Ak je používateľ prihlásený, klient dostane JSON odpoveď v podobe poľa objektov typu Login používateľov, ktorí sú aktívni. Aktívny používateľ je každý používateľ po dobu 30 sekúnd od posledného dopytu na získanie správ. Pokiaľ žiadnych aktívnych používateľov nenájde, vráti prázdne pole. Ak je používateľ neprihlásený, vráti HTTP kód 401 Unauthorized.
  2. MessageApiController - Poskytuje API pre odosielanie a získavanie správ. Všetky akcie tohto kontroléra sú určené iba pre prihlásených používateľov.
    1. index - Keďže sa jedná o API, index bude vracať HTTP kód 501 Not Implemented.
    2. sendMessage - Očakáva odoslanie správy s dvoma povinnými atribútmi: recipient a message. Ak ich objekt neobsahuje, klientovi sa zašle HTTP odpoveď 400 Bad Request. Ďalšie podrobnosti:
      • Atribút recipient obsahuje null, ak je správa verejná. Ak je správa privátna, tento atribút obsahuje login používateľa, komu je určená.
      • Atribút message nesmie obsahovať prázdnu hodnotu.
      • Ak atribút recipient obsahuje hodnotu a daný používateľ nie je aktívny, klientovi sa zašle HTTP odpoveď 400 The recipient is not available.
      • Po uložení správy na serveri, sa klientovi zašle empty response.
    3. getMessages - Vráti všetky správy. Pošlú sa správy, ktoré používateľ odoslal, verejné správy a jemu poslané privátne správy. Metóda môže prijať parameter lastId, ktorý klientovi zašle správy od zadaného id.

Pár poznámok k testom:

  • Testy needitujte.
  • Vytvorte API tak, aby všetky testy prebehli úspešne.
  • Jednotlivé HTTP dopyty sa dajú púšťať jednotlivo, niektoré sú závislé ne iných testoch, preto nemusia byť úspešné.

Ako nájdem vetvu môjho cvičenia?

Pokiaľ sa chcete dostať k riešeniu z cvičenia je potrebné otvoriť si príslušnú vetvu, ktorej názov sa skladá:

MIESTNOST + "-" + HODINA ZAČIATKU + "-" + DEN

Ak teda navštevujete cvičenie pondelok o 08:00 v RA323, tak sa vaša vetva bude volať: RA323-08-PON

Použitý framework

Cvičenie používa framework vaííčko dostupný v repozitári https://github.com/thevajko/vaiicko. Pre úspešné riešenie projektu je potrebné spustiť docker konfiguráciu zo súboru docker\docker-compose.yml.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages