Jura-Hostic-i-Film / Jura-Hostic-i-Film-api

1 stars 0 forks source link

Create Archive CRUD #11

Open JuraH32 opened 12 months ago

JuraH32 commented 12 months ago

Potrebno je napraviti mogućnost kreiranja, uređivanja, dohvaćanja i brisanja arhive.

Unutar svakog od navedenih direktorija (imena poglavlja), potrebno je stvoriti novi file archive.py. Unutar svakog od tih dokumenata se implementira navedeno. Za svako od poglavlja, strukturu datoteka možete vidjeti u drugim datotekama u istom direktoriju.

U dokumentu Dijagrami razreda.pdf možete vidjeti kako trebaju izgledati potrebne klase i funkcije ali je potrebno napomenuti da dijagrami nisu nužno potpuni te da sami možete dodati dodatne funkcije ako su potrebne.

Models

Unutar modela, potrebno je stvoriti klase koje predstavljaju spremljene modele u bazi. Potrebne atribute klase možete vidjeti ovdje. Bitna je tablica archive, te tablica povezivanja s users te s documents. Također potrebnu klasu možemo vidjeti unutar dokumenta Dijagrami razreda pod imenom ArchiveDB.

Schemas

Unutar ovog je potrebno definirati scheme za arhive. Potrebne scheme (iako nisu možda sve navedene tako da je potrebno možda nadodati svoje) možete naći unutar dokumenta Dijagrami razreda. Scheme definiraju objekte za komunikaciju između različitih dijelova aplikacije.

Routes

Ovdje je potrebno definirati endpointe za aplikaciju. Potrebno je stvoriti endpointe za: kreiranje (C), dohvaćanje (R), promjenu (U), brisanje (D). Osim toga je potrebno napraviti endpointe za dohvaćanje svih arhiva, svih arhiva za nekog usera, svih arhiva s nekim statusom te oboje odjednom. To je sve moguce implementirati pomocu jednog endpointa s path parametrima što bi bilo i poželjno. Pristup tom endpointu bi trebao biti omogućen samo Adminima i Direktorima. Također bi trebao postojati endpoint s kojim računovođa može dohvatiti dokumente za njega samoga. Autentifikaciju i ograničavanje uloga možete postići pomoću @authenticate dekoratora. Možda će biti potreban još koji endpoint.

Services

Ovdje je potrebno napraviti 2 klase: ArchiveService te ArchiveCRUD. Unutar ArchiveService je sva logika oko arhiviranja dok je u ArchiveCRUD sva komunikacija s bazom vezana uz dokumente. Popis funkcija možete vidjeti unutar dokumenta Dijagrami razreda ali taj popis nije nužno potpun te ga je najvjerojatnije potrebno nadopuniti. Bitno je napomenuti da pri kreiranju novog zahtjeva za arhivom, mora postojati logika kojom se bira pravi tip računovođe s najmanje zahtjeva na čekanju.