Comcat — company catalogue#
The module derives from the classifieds, so the patterns are nearly identical.
Every resource offers the standard set of actions
get, get-by, get-all, save, update-columns, delete, delete-all —
unless stated otherwise. See the CRUD pattern.
Resources#
| Resource | Note |
|---|---|
advert |
company profile — owner, event |
advert-report |
reporting |
advert-statistics |
statistics |
category |
trade — tree, public |
parameter |
parameter — tree, public |
parameter-group |
parameter group |
parameter-rule |
display rule |
category-parameter-rel |
parameter targeting |
response |
reply — owner, receiver |
watchdog |
saved search — owner |
tariff |
tariff |
payment-item |
payment item |
Differences from the classifieds#
| Bazaar | Comcat | |
|---|---|---|
| Price | yes | no |
| Sold | yes | no |
| Followers | yes | no |
The missing price is deliberate
A company is not for sale. Listing prices sit on the category.
A reply to a company profile#
response behaves as in the classifieds: the sender of the reply is owner, the profile's
owner (the advert in the directory) is owner and receiver and may read the detail (get)
and mark the reply as read. The secret key readKey for the "Mark as
read" link in the email is known only to the website; it is never written or returned over HTTP.
Details in Bazaar and in
Permissions.
A profile has no fixed fields#
Name, company number, address and opening hours are parameters
Find out from category-parameter-rel what the trade requires. Without it you
send an empty profile.
Opening hours#
A dedicated parameter type with its own value structure.
Saving a profile replaces the whole parameter set
Omit the opening hours and they disappear — with nothing reported. When editing, send the complete set.
Visibility#
A profile is active only when approved, paid for, and not banned, deleted or deactivated. The active flag cannot be written.
Reads are filtered the same way as for adverts: an external caller without the administrator
role gets from advert (get, get-by, get-all, search) only profiles that are active
and not expired (expirationDate is today or later) plus their own, and from category
only active fields. A hidden profile disappears together with its relations and its get
looks like a record that does not exist. Details in Bazaar.
Writing a profile#
The same checks apply as when writing an advert: parameter
rules (code: 2, errorCode parameterTooLong, parameterUrlNotAllowed,
parameterBlacklistedWord, parameterRequired, parameterOptionNotAllowed), a disabled or
administrator-only field (615, advertCategoryNotAllowed), the blacklist for a new profile
(615, blacklisted), images over the limit in saveInfo.rejectedUploads with the reason
size, and extend-expiration in a paid field (607, data: null). A reply to a profile
with a blacklisted value returns 615, blacklisted.