Router
Group-Office has 3 routers:
The JMAP router for routing JMAP requests. See https://jmap.io/spec-core.html
The CLI router for routing Command Line Interface commands
A download hash for routing download id’s to a method.
JMAP Router
The standard JMAP calls are already built in. Every Entity is registered in the “core_entity” table. The router uses this table to find the corresponding module. For example method call “Contact/get” is mapped to PHP class:
go\modules\community\addressbook\controller\Contact
and public method:
get($params);
All parameters are passed in the $params argument.
CLI Router
There’s also a command line interface router. Read more about that here
Download router
All downloads go through “download.php?blob=<HASH>”. The <HASH> is typically a hash pointing to a BLOB on the system. But it can also contain a route to a special download method defined in the Module.php file of the module. Methods prefixed with “download” can be accessed. For example method:
go\modules\community\addressbook\Module::downloadVcard($contactId);
can be accessed with:
download.php?blob=community/addressbook/vcard/1