add(crm): chart mock api and statik codegen
This commit is contained in:
parent
3e7898fbac
commit
9494271380
10
Makefile
10
Makefile
@ -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%"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
@ -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)
|
||||
}
|
||||
|
||||
16
crm/repository/files/statik.go
Normal file
16
crm/repository/files/statik.go
Normal 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
@ -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())
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user