Closed tanelk closed 7 years ago
Need on olemas: GET /api/reports POST /api/reports PATCH /api/reports
Vaata api doci all peaks need kirjeldatud olema. Kas saab kasutada? Mis siin API pool vaja veel teha, et selle labeli panid külge?
Ma kolmandat päeva teen seda aruande loomist. Hetk tagasi sain läbi UI edukalt esimese aruande salvestatud. Tulevad ka commitid varsti.
Osaliselt sain kasutada, osaliselt pidin ümber tegema. Eriti oli probleeme klassiga Report, kuna see on väga tihedalt seotud legacy UIga.
Tead, kui sul on sellega probleeme, siis on mõistlik see klass extendida APIBundle/Models/Report klassina ja seal üle kirjutada mingid meetodid. Samuti ReportType võib üle kirjutada. Siis on vähe ohtu, et vana kood katki läheb
Kuidas teha nii, et ReportsQuery tagastab selle uue klassi aga mitte originaali?
Kui teha ReportQuery::create() asemel konstruktoriga - new ReportsQuery(null, Report::class). Teine parameeter on modelClass - namespace sellele. Mudeli küljest ::class annab siis selle täispika nime.
Õigem oleks vist extendida ka ReportQuery klass ja seal sees create() meetod üle kirjutada ning anda selle teise Report klass kaasa konstruktorile.
Äkki midagi sellist:
public static function create($modelAlias = null, $criteria = null)
{
$query = parent::create($modelAlias, $criteria);
$query->modelName = Report::class;
return $query;
}
Seotud kandega #66 - aruannete kuvamine. Kas sa siin raames tegid ainult aruande lisamist? Kui kuvamine ka siin, siis teine kanne läheb ka pärast kinni.
Mulle tundub, et selle classi extendimine ei tööta ikkagi. Query tagastab ikkagi vana classi.
Näiteks classis BaseReportQuery on meetod findPkSimple ja seal on selgelt
$obj = new Report();
$obj->hydrate($row);
Ning see Report class, millele viidatakse on hardcoded Inventorybudle omale.
Mnjahh, ilmselt siis lahendus oleks APIBundle schemas ka see defineerida. Võib-olla saad siis ikkagi vana modelit kasutada ja peab lihtsalt vaatama, et vana UI toimib :)
Tegelt olemasolev raportite asi oli juba katki. Mitme koha peal polnud näiteks konvendi id-d, jäänuk sellest ajast kui ainult Tallinn töötas.
POST /api/reports/
Lisaks peaks saama ka lao (warehouse) jaoks saama teha VERIFICATION tüüpi aruannet - nö lao inventuur. Tehakse arvatavasti korra semestris - ametit üle andes. Annab selge pildi kuipalju mida on. Tegemiseks vaja admini õiguseid.
Vajalik UI on olemas, tuleb külge pookida lihtsalt.