3
0

upd(docs): include chart docs into readme

This commit is contained in:
Tit Petric
2018-11-25 13:05:14 +01:00
parent 6c2d11c050
commit 49b70d8f2d
2 changed files with 185 additions and 0 deletions

View File

@@ -81,6 +81,191 @@ CRM module definitions
## Analyze data for chart
# JSON for Charts
When the API generates a JSON like this we can generate charts (with some JS on the front-end). The Groupby, Sum and Count fields in the form in the chart module in the CRM are there to format the values in the data array.
## Example with no GroupBy, Sum or Count:
Example chart: select Opportunity value for all opportunities between 1/1/2018 and 31/12/2018 and show them in a line chart.
```
{
"kind": "line",
"data": [
[
"Close date",
"2018-01-01",
"2018-01-02",
"2018-01-03",
"2018-01-04"
],
[
"Opportunity value",
30,
200,
100,
400
]
],
"fields": {
"Close date": {
"kind": "datetime",
"min": "1/1/2018",
"max": "31/12/2018"
},
"Opportunity value": {
"name": "(Field name)",
"kind": "(Field kind)"
}
},
"meta": {
"name": "Line chart",
"description": "Description for the chart",
"kind": "line",
"module": 62511111111111110,
"x": 62522222222222220,
"xmin": "1/1/2018",
"xmax": "31/12/2018",
"y": 62533333333333336
}
}
```
## Example with Count:
Example pie chart: select opportunity.state count by opportunity.state.
This will need to return:
Open, 10 (where the 10 is a count)
Won, 5
Lost, 2
```
{
"kind": "pie",
"data": [
[
"Open",
10
],
[
"Won",
5
],
[
"Lost",
2
]
],
"fields": {
"state": {
"kind": "string"
}
},
"meta": {
"name": "Pie chart",
"description": "",
"kind": "pie",
"module": 62511111111111110,
"x": 62522222222222220,
"y": 62533333333333336,
"count": 62566666666666664
}
}
```
## Example with Sum:
Example donut chart: select opportunity.type sum by opportunity.value.
This will need to return a sum of all the opportunies by type (very similar to count, but it sums instead of counts)
```
{
"kind": "donut",
"data": [
[
"Open",
120000
],
[
"Won",
1000000
],
[
"Lost",
30000
]
],
"fields": {
"type": {
"kind": "string"
}
},
"meta": {
"name": "Donut chart",
"description": "Description for the chart",
"kind": "donut",
"module": 62511111111111110,
"x": 62522222222222220,
"y": 62533333333333336,
"sum": 62555555555555550
}
}
```
## Example with GroupBy and Count
Example bar chart with number of leads per country: select lead.country from leads Count lead.id GroupBy lead.country
```
{
"kind": "bar",
"data": [
[
"France",
12
],
[
"Slovenia",
10
],
[
"Spain",
3
],
[
"United Kingdom",
5
],
[
"Germany",
20
]
],
"fields": {
"country": {
"kind": "string"
}
},
"meta": {
"name": "Bar chart",
"description": "",
"kind": "bar",
"module": 62511111111111110,
"x": 62522222222222220,
"y": 62533333333333336,
"groupby": 62544444444444450,
"count": 62566666666666664
}
}
```
#### Method
| URI | Protocol | Method | Authentication |