moravianlibrary / kramerius

GNU General Public License v3.0
1 stars 1 forks source link

API hlášení chyb #9

Closed leiblix closed 9 years ago

leiblix commented 9 years ago

Endpoint v API

parametry: uuid, mail, popis chyby

po nahlášení je zasláno na mail admina

honza-rychtar commented 9 years ago

Pokud by se neposilalo cele url ale jen uuid, tak bude potreba identifikovat i domenu a kod krameria.

Bud musi kramerius znat mapovani domeny na kod pouzivany klientem, tj. krameriu.mzk.cz -> mzk krameriusndktest.mzk.cz -> ndk kramerius.kr-olomoucky.cz -> vkol atd.. Nebo bude kod jako dalsi parametr requestu pro nahlaseni chyby.

Dalsi vec je domena klienta. Ne nutme to bude digitalniknihovna.mzk.cz (Muze si jej nasadit jina knihovna u sebe).

Ten endpoint musi sestavit url v podobe: DOMANA_KLIENTA/KOD_KRAMERIA/uuid/UUID_DOKUMENTU

DOMANA_KLIENTA a UUID_DOKUMENTU by mel urcite posilat klient. KOD_KRAMERIA muze posilat taky klient nebo si ho odvodi Kramerius sam.

leiblix commented 9 years ago

Měl jsem za to, že ty bys měl posílat posílat to hlášení na konkrétní API Krameria, které obsahuje špatný dokument. V tom případě nepotřebuji žádný kód Krameria.

Takže se ptám jak to vlastně chceme

A. Za chyby zodpovídá prozovatel API V tomto případě nepotřebuji kód, Kramerius API řeší pouze vlastní chyby.

B. Za chyby zodpovídá provozovatel klienta Čili API Krameria je schopné zpracovat chyby i z jiných Kramerií.

V případě varianty B je jediné rozumné řešení posílat celé URL, protože si nemyslím, že by Kramerius jako takový měl něco vědět o různých Krameriích (a ani o kódech, které se teď používají pouze v tvém klientovi).

Nebo to udělám prostě tak, že se do toho endpointu bude posílat celá (jakákoliv) url, to je asi nejvíc jednoduché a bude to kompatibilní i s variantou B.

honza-rychtar commented 9 years ago

Mela by to byt moznost A. urcite. Slo mi o to, ze API s nahlasenym jen uuid dokumentu si dokaze vytvorit url do editoru. Ale pokud to bude chtit clovek zodpovedny za opravu nejdriv videt v klientovi, tak to uz API za stavajici situace znat nebude. Zejmena pokud se potom dodela ta samostatna sluzba, ktera vylistuje seznam nahlasenych a jeste nevyresenych problemu - tak si je budu chtit projit v klientovi a pak je opravit. Takze by tam myl byt pro kazdy problem link do klienta a do editoru.

Ale je pravda, ze API by nemelo byt zavisle na konkretnim klientovi (nemelo by o nem ani vedet). To jsem nedomyslel. Takze asi nejlepsi by bylo posilat UUID (z toho API vygeneruje vse potrebne pro sveho Krameria). A potom cele url, aby se dalo podivat kde to presne uzivatel byl, kdyz chybu nahlasoval - nahlasovani chyb pres API bude obecne a oznameni chyby tak v budoucnu muze byt hlaseno z Androidu/iOS/Web-clietn1/Web-client2/..... a ne vsude se musi nahlasena chyba projevit.

Jenyk commented 9 years ago

API je hotové, můžeš ho vyzkoušet na http://krameriustest.mzk.cz/search/api/v5.0/feedback Nastavil jsem email administrátora na tvůj (@honza-rychtar), takže testovací maily budou chodit tobě. Commit https://github.com/moravianlibrary/kramerius/commit/5a319361dc279f36f028a386679926a99f3c8393

Je-li to ok, tak pošlu pull request Incadu.

honza-rychtar commented 9 years ago

Diky.

vsechny 4 parametry jsou povinne. Uzivatel mail vyplnovat nebude (i kdyz dobrovolne muze). Zatim tam budu davat neco jako noreply@mzk.cz, ale pak by bylo dobre udelat tento parametr nepovinny. A podle (ne)pritomnosti pak naformatovat telo zpravy. Stejne tak parametr text by nemusel byt vyzadovany.

Feedback by pak mohl slouzit i jako klasicky feedback, ne jen na nahlasovani chyb v otevrenem dokumentu. Pak by se nevyplnovalo ani url a uuid (formular by byl nekde na obrazovce s napovedou) ....ale tohle poresime pak.

honza-rychtar commented 9 years ago

Funguje to. Muzes poslat pull request.

Pridal jsem do aplikace formular pro nahlasovani chyb:

snimek obrazovky porizeny 2015-05-27 00 04 27

Po odeslani mi na mail prislo:

from: noreply@janrychtar.cz pid: uuid:c6d8fc1a-8fed-4ea4-b8b8-26207a1650b9 content: Test zpětné vazby. Našel jsem chybu v názvu, .....

http://localhost/kramerius/#/mzk-test/periodical/uuid:c6d8fc1a-8fed-4ea4-b8b8-26207a1650b9

Jenyk commented 9 years ago

Tak jsem změnil všechny 4 parametry na nepovinné a poslal pull request (https://github.com/ceskaexpedice/kramerius/pull/248).

Metoda, která posílá mail (včetně formátování těla zprávy) je převzatá z Krameria a nechtěl jsem ji měnit. Formátovací string na tělo zprávy se bere z nastavení (feedback.mail.message=from: {0} pid: {1} content:{2}). Mělo by to být lokalizovatelné. Teď se teda bude v případě nevyplněných parametrů prostě předávat prázdný string.