{ "Title": "Modules", "Description": "CRM module definitions", "Interface": "Module", "Struct": [ { "imports": [ "sqlxTypes github.com/jmoiron/sqlx/types", "github.com/crusttech/crust/crm/types" ] } ], "Parameters": null, "Protocol": "", "Authentication": [], "Path": "/module", "APIs": [ { "Name": "list", "Method": "GET", "Title": "List modules", "Path": "/", "Parameters": { "get": [ { "name": "query", "required": false, "title": "Search query", "type": "string" } ] } }, { "Name": "create", "Method": "POST", "Title": "Create module", "Path": "/", "Parameters": { "post": [ { "name": "name", "required": true, "title": "Module Name", "type": "string" }, { "name": "fields", "required": true, "title": "Fields JSON", "type": "types.ModuleFieldSet" }, { "name": "meta", "required": true, "title": "Module meta data", "type": "sqlxTypes.JSONText" } ] } }, { "Name": "read", "Method": "GET", "Title": "Read module", "Path": "/{moduleID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "update", "Method": "POST", "Title": "Update module", "Path": "/{moduleID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ], "post": [ { "name": "name", "required": true, "title": "Module Name", "type": "string" }, { "name": "fields", "required": true, "title": "Fields JSON", "type": "types.ModuleFieldSet" }, { "name": "meta", "required": true, "title": "Module meta data", "type": "sqlxTypes.JSONText" } ] } }, { "Name": "delete", "Method": "DELETE", "Title": "Delete module", "Path": "/{moduleID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "record/report", "Method": "GET", "Title": "Generates report from module records", "Path": "/{moduleID}/report", "Parameters": { "get": [ { "name": "metrics", "required": false, "title": "Metrics (eg: 'SUM(money), MAX(calls)')", "type": "string" }, { "name": "dimensions", "required": true, "title": "Dimensions (eg: 'DATE(foo), status')", "type": "string" }, { "name": "filter", "required": false, "title": "Filter (eg: 'DATE(foo) \u003e 2010')", "type": "string" } ], "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "record/list", "Method": "GET", "Title": "List/read records from module section", "Path": "/{moduleID}/record", "Parameters": { "get": [ { "name": "filter", "required": false, "title": "Filtering condition", "type": "string" }, { "name": "page", "required": false, "title": "Page number (0 based)", "type": "int" }, { "name": "perPage", "required": false, "title": "Returned items per page (default 50)", "type": "int" }, { "name": "sort", "required": false, "title": "Sort field (default id desc)", "type": "string" } ], "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "record/create", "Method": "POST", "Title": "Create record in module section", "Path": "/{moduleID}/record", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ], "post": [ { "name": "values", "required": true, "title": "Record values", "type": "types.RecordValueSet" } ] } }, { "Name": "record/read", "Method": "GET", "Title": "Read records by ID from module section", "Path": "/{moduleID}/record/{recordID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "recordID", "required": true, "title": "Record ID", "type": "uint64" } ] } }, { "Name": "record/update", "Method": "POST", "Title": "Update records in module section", "Path": "/{moduleID}/record/{recordID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "recordID", "required": true, "title": "Record ID", "type": "uint64" } ], "post": [ { "name": "values", "required": true, "title": "Record values", "type": "types.RecordValueSet" } ] } }, { "Name": "record/delete", "Method": "DELETE", "Title": "Delete record row from module section", "Path": "/{moduleID}/record/{recordID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "recordID", "required": true, "title": "Record ID", "type": "uint64" } ] } } ] }