{ "Title": "Modules", "Description": "CRM module definitions", "Package": "crm", "Interface": "Module", "Struct": [ { "fields": [ { "name": "ID", "type": "uint64" }, { "name": "Name", "type": "string" }, { "db": "json", "json": "fields", "name": "Fields", "type": "types.JSONText" } ], "imports": [ "github.com/jmoiron/sqlx/types" ], "name": "Module" }, { "fields": [ { "name": "Name", "type": "string" }, { "name": "Title", "type": "string" }, { "name": "Kind", "type": "string" }, { "name": "GDPR", "type": "bool" }, { "name": "Show", "type": "bool" } ], "name": "ModuleField" }, { "fields": [ { "name": "ID", "type": "uint64" }, { "name": "moduleID", "type": "uint64" }, { "db": "json", "name": "Fields", "type": "types.JSONText" } ], "imports": [ "github.com/jmoiron/sqlx/types" ], "name": "Content" } ], "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.JSONText" } ] } }, { "Name": "read", "Method": "GET", "Title": "Read module", "Path": "/{moduleID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "chart", "Method": "GET", "Title": "Analyze data for chart", "Path": "/{moduleID}/chart", "Parameters": { "get": [ { "name": "name", "required": true, "title": "The chart name", "type": "string" }, { "name": "description", "required": true, "title": "The chart description", "type": "string" }, { "name": "xAxis", "required": true, "title": "X axis value", "type": "string" }, { "name": "xMin", "required": false, "title": "Min value", "type": "string" }, { "name": "xMax", "required": false, "title": "Max value", "type": "string" }, { "name": "yAxis", "required": true, "title": "Y axis value", "type": "string" }, { "name": "groupBy", "required": true, "title": "Group by field", "type": "string" }, { "name": "sum", "required": true, "title": "Sum values field", "type": "string" }, { "name": "count", "required": true, "title": "Count values field", "type": "string" }, { "name": "kind", "required": true, "title": "Chart kind (line, spline, step, area, area-spline, area-step, bar, scatter, pie, donut, gauge)", "type": "string" } ], "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "edit", "Method": "POST", "Title": "Edit 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.JSONText" } ] } }, { "Name": "delete", "Method": "DELETE", "Title": "Delete module", "Path": "/{moduleID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "content/list", "Method": "GET", "Title": "List/read contents from module section", "Path": "/{moduleID}/content", "Parameters": { "get": [ { "name": "query", "required": false, "title": "Search query", "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" } ], "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ] } }, { "Name": "content/create", "Method": "POST", "Title": "List/read contents from module section", "Path": "/{moduleID}/content", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" } ], "post": [ { "name": "fields", "required": true, "title": "Content JSON", "type": "types.JSONText" } ] } }, { "Name": "content/read", "Method": "GET", "Title": "Read contents by ID from module section", "Path": "/{moduleID}/content/{contentID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "contentID", "required": true, "title": "Content ID", "type": "uint64" } ] } }, { "Name": "content/edit", "Method": "POST", "Title": "Add/update contents in module section", "Path": "/{moduleID}/content/{contentID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "contentID", "required": true, "title": "Content ID", "type": "uint64" } ], "post": [ { "name": "fields", "required": true, "title": "Content JSON", "type": "types.JSONText" } ] } }, { "Name": "content/delete", "Method": "DELETE", "Title": "Delete content row from module section", "Path": "/{moduleID}/content/{contentID}", "Parameters": { "path": [ { "name": "moduleID", "required": true, "title": "Module ID", "type": "uint64" }, { "name": "contentID", "required": true, "title": "Content ID", "type": "uint64" } ] } } ] }