3
0

add(crm): chart mock api and statik codegen

This commit is contained in:
Tit Petric 2018-11-12 15:40:18 +01:00
parent 3e7898fbac
commit 9494271380
12 changed files with 77 additions and 15 deletions

View File

@ -53,7 +53,7 @@ realize: $(REALIZE)
$(REALIZE) start
dep.codegen:
go install github.com/rakyll/statik
go install github.com/titpetric/statik
dep.update: $(DEP)
$(DEP) ensure -update -v
@ -116,6 +116,14 @@ test.rbac: $(GOTEST)
$(GOTEST) -covermode count -coverprofile .cover.out -v ./internal/rbac/...
$(GO) tool cover -func=.cover.out | grep --color "^\|[^0-9]0.0%"
test.rbac.resources: $(GOTEST)
$(GOTEST) -run Resources -covermode count -coverprofile .cover.out -v ./internal/rbac/...
$(GO) tool cover -func=.cover.out | grep --color "^\|[^0-9]0.0%"
test.rbac.sessions: $(GOTEST)
$(GOTEST) -run Sessions -covermode count -coverprofile .cover.out -v ./internal/rbac/...
$(GO) tool cover -func=.cover.out | grep --color "^\|[^0-9]0.0%"
test.store: $(GOTEST)
$(GOTEST) -covermode count -coverprofile .cover.out -v ./internal/store/...
$(GO) tool cover -func=.cover.out | grep --color "^\|[^0-9]0.0%"

View File

@ -15,6 +15,7 @@ function gofmt {
echo "=== go generate ==="
cd system/db && go generate && cd ../..
cd crm/db && go generate && cd ../..
cd crm/repository && go generate && cd ../..
cd sam/db && go generate && cd ../..
_PWD=$PWD

View File

@ -9,10 +9,11 @@ import (
"sort"
"strings"
_ "github.com/crusttech/crust/crm/db/mysql"
"github.com/pkg/errors"
"github.com/rakyll/statik/fs"
"github.com/titpetric/statik/fs"
"github.com/titpetric/factory"
"github.com/crusttech/crust/crm/db/mysql"
)
//go:generate $GOPATH/bin/statik -p mysql -m -Z -f -src=schema/mysql
@ -25,7 +26,7 @@ func statements(contents []byte, err error) ([]string, error) {
}
func Migrate(db *factory.DB) error {
statikFS, err := fs.New()
statikFS, err := fs.New(mysql.Data())
if err != nil {
return errors.Wrap(err, "Error creating statik filesystem")
}

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,36 @@
package repository
import (
"github.com/pkg/errors"
"github.com/titpetric/statik/fs"
"github.com/crusttech/crust/crm/repository/files"
"github.com/crusttech/crust/crm/rest/request"
)
func (m *module) Chart(r *request.ModuleChart) (interface{}, error) {
return "not implemented yet", nil
// Module chart request parameters
type ModuleChart struct {
Name string
Description string
XAxis string
XMin string
XMax string
YAxis string
GroupBy string
Sum string
Count string
Kind string
ModuleID uint64 `json:",string"`
}
//go:generate $GOPATH/bin/statik -p files -m -Z -f -src=data
func (m *module) Chart(r *request.ModuleChart) (interface{}, error) {
statikFS, err := fs.New(files.Data())
if err != nil {
return nil, errors.Wrap(err, "Error creating statik filesystem")
}
filename := "./chart-" + r.Kind + ".json"
return fs.ReadFile(statikFS, filename)
}

View File

@ -0,0 +1,16 @@
// Code generated by statik. DO NOT EDIT.
// Package statik contains static assets.
package files
import (
"github.com/rakyll/statik/fs"
)
func Data() string {
return "PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00chart-bar.jsonUT\x05\x00\x01\x80Cm8{\n \"kind\": \"bar\",\n \"data\": [\n [\n \"France\",\n 12\n ],\n [\n \"Slovenia\",\n 10\n ],\n [\n \"Spain\",\n 3\n ],\n [\n \"United Kingdom\",\n 5\n ],\n [\n \"Germany\",\n 20\n ]\n ],\n \"fields\": {\n \"country\": {\n \"kind\": \"string\"\n }\n },\n \"meta\": {\n \"name\": \"Bar chart\",\n \"description\": \"\",\n \"kind\": \"bar\",\n \"module\": 62511111111111110,\n \"x\": 62522222222222220,\n \"y\": 62533333333333336,\n \"groupby\": 62544444444444450,\n \"count\": 62566666666666664\n }\n}\nPK\x07\x08:\xd6\xf1\xaf\x19\x02\x00\x00\x19\x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00 \x00chart-donut.jsonUT\x05\x00\x01\x80Cm8{\n \"kind\": \"donut\",\n \"data\": [\n [\n \"Open\",\n 120000\n ],\n [\n \"Won\",\n 1000000\n ],\n [\n \"Lost\",\n 30000\n ]\n ],\n \"fields\": {\n \"type\": {\n \"kind\": \"string\"\n }\n },\n \"meta\": {\n \"name\": \"Donut chart\",\n \"description\": \"Description for the chart\",\n \"kind\": \"donut\",\n \"module\": 62511111111111110,\n \"x\": 62522222222222220,\n \"y\": 62533333333333336,\n \"sum\": 62555555555555550\n }\n}\nPK\x07\x08\xe2`\xd8\xac\xc2\x01\x00\x00\xc2\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x00chart-line.jsonUT\x05\x00\x01\x80Cm8{\n \"kind\": \"line\",\n \"data\": [\n [\n \"Close date\",\n \"2018-01-01\",\n \"2018-01-02\",\n \"2018-01-03\",\n \"2018-01-04\"\n ],\n [\n \"Opportunity value\",\n 30,\n 200,\n 100,\n 400\n ]\n ],\n \"fields\": {\n \"Close date\": {\n \"kind\": \"datetime\",\n \"min\": \"1/1/2018\",\n \"max\": \"31/12/2018\"\n },\n \"Opportunity value\": {\n \"name\": \"(Field name)\",\n \"kind\": \"(Field kind)\"\n }\n },\n \"meta\": {\n \"name\": \"Line chart\",\n \"description\": \"Description for the chart\",\n \"kind\": \"line\",\n \"module\": 62511111111111110,\n \"x\": 62522222222222220,\n \"xmin\": \"1/1/2018\",\n \"xmax\": \"31/12/2018\",\n \"y\": 62533333333333336\n }\n}\nPK\x07\x08\xde\xee%\n\xb7\x02\x00\x00\xb7\x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00chart-pie.jsonUT\x05\x00\x01\x80Cm8{\n \"kind\": \"pie\",\n \"data\": [\n [\n \"Open\",\n 10\n ],\n [\n \"Won\",\n 5\n ],\n [\n \"Lost\",\n 2\n ]\n ],\n \"fields\": {\n \"state\": {\n \"kind\": \"string\"\n }\n },\n \"meta\": {\n \"name\": \"Pie chart\",\n \"description\": \"\",\n \"kind\": \"pie\",\n \"module\": 62511111111111110,\n \"x\": 62522222222222220,\n \"y\": 62533333333333336,\n \"count\": 62566666666666664\n }\n}\nPK\x07\x08s\xd7\x8f?\x98\x01\x00\x00\x98\x01\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(:\xd6\xf1\xaf\x19\x02\x00\x00\x19\x02\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00chart-bar.jsonUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\xe2`\xd8\xac\xc2\x01\x00\x00\xc2\x01\x00\x00\x10\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81^\x02\x00\x00chart-donut.jsonUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\xde\xee%\n\xb7\x02\x00\x00\xb7\x02\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81g\x04\x00\x00chart-line.jsonUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(s\xd7\x8f?\x98\x01\x00\x00\x98\x01\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81d\x07\x00\x00chart-pie.jsonUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x04\x00\x04\x00\x17\x01\x00\x00A \x00\x00\x00\x00"
}
func init() {
fs.Register(Data())
}

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,10 @@ import (
"github.com/rakyll/statik/fs"
)
func init() {
data := "PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00 \x0020180704080000.base.up.sqlUT\x05\x00\x01\x80Cm8CREATE TABLE settings (\n name VARCHAR(200) NOT NULL COMMENT 'Unique set of setting keys',\n value TEXT COMMENT 'Setting value',\n\n PRIMARY KEY (name)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- Keeps all known users, home and external organisation\n-- changes are stored in audit log\nCREATE TABLE users (\n id BIGINT UNSIGNED NOT NULL,\n email TEXT NOT NULL,\n username TEXT NOT NULL,\n password TEXT NOT NULL,\n name TEXT NOT NULL,\n handle TEXT NOT NULL,\n meta JSON NOT NULL,\n satosa_id CHAR(36) NULL,\n\n rel_organisation BIGINT UNSIGNED NOT NULL,\n\n created_at DATETIME NOT NULL DEFAULT NOW(),\n updated_at DATETIME NULL,\n suspended_at DATETIME NULL,\n deleted_at DATETIME NULL, -- user soft delete\n\n PRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\nCREATE UNIQUE INDEX uid_satosa ON users (satosa_id);\nPK\x07\x08>\xa7\xd7\x12$\x04\x00\x00$\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00migrations.sqlUT\x05\x00\x01\x80Cm8CREATE TABLE IF NOT EXISTS `migrations` (\n `project` varchar(16) NOT NULL COMMENT 'sam, crm, ...',\n `filename` varchar(255) NOT NULL COMMENT 'yyyymmddHHMMSS.sql',\n `statement_index` int(11) NOT NULL COMMENT 'Statement number from SQL file',\n `status` TEXT NOT NULL COMMENT 'ok or full error message',\n PRIMARY KEY (`project`,`filename`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\nPK\x07\x08\x0d\xa5T2x\x01\x00\x00x\x01\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(>\xa7\xd7\x12$\x04\x00\x00$\x04\x00\x00\x1a\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x0020180704080000.base.up.sqlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\x0d\xa5T2x\x01\x00\x00x\x01\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81u\x04\x00\x00migrations.sqlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00\x96\x00\x00\x002\x06\x00\x00\x00\x00"
fs.Register(data)
func Data() string {
return "PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00 \x0020180704080000.base.up.sqlUT\x05\x00\x01\x80Cm8CREATE TABLE settings (\n name VARCHAR(200) NOT NULL COMMENT 'Unique set of setting keys',\n value TEXT COMMENT 'Setting value',\n\n PRIMARY KEY (name)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\n-- Keeps all known users, home and external organisation\n-- changes are stored in audit log\nCREATE TABLE users (\n id BIGINT UNSIGNED NOT NULL,\n email TEXT NOT NULL,\n username TEXT NOT NULL,\n password TEXT NOT NULL,\n name TEXT NOT NULL,\n handle TEXT NOT NULL,\n meta JSON NOT NULL,\n satosa_id CHAR(36) NULL,\n\n rel_organisation BIGINT UNSIGNED NOT NULL,\n\n created_at DATETIME NOT NULL DEFAULT NOW(),\n updated_at DATETIME NULL,\n suspended_at DATETIME NULL,\n deleted_at DATETIME NULL, -- user soft delete\n\n PRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\nCREATE UNIQUE INDEX uid_satosa ON users (satosa_id);\nPK\x07\x08>\xa7\xd7\x12$\x04\x00\x00$\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00migrations.sqlUT\x05\x00\x01\x80Cm8CREATE TABLE IF NOT EXISTS `migrations` (\n `project` varchar(16) NOT NULL COMMENT 'sam, crm, ...',\n `filename` varchar(255) NOT NULL COMMENT 'yyyymmddHHMMSS.sql',\n `statement_index` int(11) NOT NULL COMMENT 'Statement number from SQL file',\n `status` TEXT NOT NULL COMMENT 'ok or full error message',\n PRIMARY KEY (`project`,`filename`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n\nPK\x07\x08\x0d\xa5T2x\x01\x00\x00x\x01\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(>\xa7\xd7\x12$\x04\x00\x00$\x04\x00\x00\x1a\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x0020180704080000.base.up.sqlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\x0d\xa5T2x\x01\x00\x00x\x01\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81u\x04\x00\x00migrations.sqlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00\x96\x00\x00\x002\x06\x00\x00\x00\x00"
}
func init() {
fs.Register(Data())
}