Bazaar — inzerce#
Každý zdroj nabízí standardní sadu akcí
get, get-by, get-all, save, update-columns, delete, delete-all —
není-li u něj uvedeno jinak. Podrobně CRUD vzor.
Zdroje#
| Zdroj | Poznámka |
|---|---|
advert |
inzerát — vlastník, událost |
advert-follower |
sledování |
advert-report |
nahlášení |
advert-statistics |
statistiky zhlédnutí |
category |
kategorie — strom, veřejné |
parameter |
parametr — strom, veřejné |
parameter-group |
skupina parametrů |
parameter-rule |
pravidlo zobrazení |
category-parameter-rel |
cílení parametru na kategorii |
response |
odpověď na inzerát — vlastník, příjemce, událost |
watchdog |
hlídací pes — vlastník, událost |
tariff |
tarif |
payment-item |
platební položka |
🔴 Inzerát nemá pevná pole#
Název, popis a cena jsou parametry, ne sloupce
Zápis inzerátu tedy neposílá data[name], ale hodnoty parametrů. Které parametry
kategorie vyžaduje, zjistíte z category-parameter-rel.
Vyhrazené klíče parametrů: name, price, email, regionId.
Kategorie a parametry jsou stromy#
Obojí. Volby výběrového parametru jsou jeho potomci.
delete-node smaže celý podstrom
U parametru včetně všech jeho voleb — a s nimi hodnoty ve všech inzerátech.
Viditelnost inzerátu#
Inzerát je aktivní, jen když je schválený, zaplacený a není blokovaný, smazaný, deaktivovaný ani prodaný.
Příznak aktivity se nedá zapsat
Je počítaný z uvedených šesti. Zápis se zamítne.
Co vrací čtení#
Externí volající bez administrátorské role dostane z advert (get, get-by, get-all,
search) jen inzeráty, které web zobrazuje: aktivní a neprošlé (expirationDate je dnes
nebo později) — a navíc vlastní inzeráty přihlášeného uživatele (insertUserId = uživatel
z tokenu), i neaktivní nebo prošlé. Z category dostane jen aktivní kategorie.
| Volající | Co vidí |
|---|---|
| host (jen klíč aplikace) | aktivní a neprošlé inzeráty, aktivní kategorie |
| přihlášený uživatel | totéž + své vlastní inzeráty v jakémkoli stavu |
administrátor (role admin) |
vše, bez filtru |
Skrytý inzerát zmizí beze stopy
Ve výpisu chybí i se svými vazbami (parametry, kategorie, obrázky, soubory, texty) a
get skrytého inzerátu vypadá stejně jako neexistující záznam. Stránka výpisu proto může
mít méně záznamů než limit a totalCount je jen horní odhad — odečte jen skryté
záznamy z vrácené stránky.
Odpověď na inzerát#
Zdroj response rozlišuje dvě strany:
| Strana | Role | Co smí |
|---|---|---|
| odesílatel odpovědi | owner |
upravit a smazat vlastní odpověď |
| majitel inzerátu | owner i receiver |
upravit a smazat odpověď na svůj inzerát; get přečte detail; označí ji za přečtenou (read) |
| držitel hesla k inzerátu | receiver |
totéž jako majitel, bez přihlášení |
| administrátor | admin |
vše |
Odpověď má v databázi pole readKey — náhodný tajný klíč, který web vkládá do odkazu
Označit jako přečtené v e-mailu. Nastavuje ho server při založení a zvenčí se nezapisuje.
readKey přes HTTP nedostanete
Klíč zná jen web uvnitř serveru. V odpovědi API ho nenajde nikdo — ani příjemce, ani administrátor s tokenem.
Označení přes klíč má jen vnitřní cestu
Akce mark-read-by-key slouží webu a nemá HTTP obal. Z externího klienta označíte
odpověď jen jako přihlášený příjemce, zápisem sloupce read.
Cena a měna odpovědi (price, currencyId): měna je povinná jen s cenou a smí být jen
veřejná peněžní měna; měna bez ceny se zahodí. Chybný zápis vrací success: false, code: 2,
viz Změny API. Totéž platí pro
odpovědi katalogu firem.
Na prodaný inzerát odpověď neprojde: code: 607, data.errorCode: advertSold. Odpověď
s e-mailem, telefonem nebo IP adresou na blacklistu vrací code: 615, data.errorCode: blacklisted.
Zápis inzerátu#
Neprivilegovaného volajícího (host, přihlášený uživatel, vlastník) API kontroluje stejně jako
formulář webu. Odmítnutí vrací success: false, HTTP 200 a v data.errorCode důvod — viz
Chybové kódy.
| Kontrola | code |
errorCode |
|---|---|---|
| hodnota parametru delší než jeho limit | 2 |
parameterTooLong |
| odkaz v parametru, který odkazy zakazuje | 2 |
parameterUrlNotAllowed |
| aktivní zakázané slovo v jazyce stránky požadavku | 2 |
parameterBlacklistedWord |
| chybí povinný parametr podle pravidel parametrů | 2 |
parameterRequired |
| volba výběrového parametru, kterou formulář při ostatních hodnotách nenabízí | 2 |
parameterOptionNotAllowed |
| kategorie je vypnutá (i přes vypnutého rodiče) nebo jen pro administrátora | 615 |
advertCategoryNotAllowed |
| e-mail nebo IP adresa nového inzerátu je na blacklistu | 615 |
blacklisted |
Povinnost řídí pravidla parametrů
Povinný parametr může být povinný jen za podmínky — např. cena a měna jen u některého typu
ceny. Pravidla čtěte z parameter-rule. Povinnost se kontroluje při vložení
nového inzerátu; nahrávání souborů a skrytá pole se nekontrolují.
Obrázky nad limit velikosti#
Nový obrázek větší než limit se neuloží, zbytek zápisu projde. Odpověď je úspěšná a
v saveInfo.rejectedUploads uvádí odmítnuté soubory s důvodem size:
{"success":true,"code":0,"message":"","data":{…},"saveInfo":{"rejectedUploads":[{"name":"foto.jpg","reason":"size"}]}}
Limit: max_size parametru pro nahrání obrázků, jinak nastavení webu maxImageSize, jinak 50 MB.
Prodloužení platnosti#
Akce extend-expiration (advertId) v placené kategorii neprivilegovanému volajícímu
neprojde: code: 607, data: null. Prodloužení v placené kategorii se platí na webu.
Administrátor prodlužuje zdarma.
Hlídací pes#
Vyžaduje kategorii i region. Spouští se jen při vložení nového inzerátu.
Cena#
Ceny v různých měnách se nepřepočítávají
Řazení podle ceny míchá měny. Chcete-li srovnatelné výsledky, filtrujte podle měny.