8000 name->id and table detail by kl7sn · Pull Request #31 · clickvisual/clickvisual · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

name->id and table detail #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Feb 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5d68d7a
fix: interval week to day
kl7sn Feb 7, 2022
8d7eb88
fix: Optimized bar chart time display
m1666 Feb 7, 2022
c124451
fix: The _timestamp_ field disables query
m1666 Feb 7, 2022
4d49a12
feat: trace info
kl7sn Feb 8, 2022
99d1df5
docs: documentation updates
kl7sn Feb 8, 2022
2db9796
fix: Optimization Prompt
m1666 Feb 8, 2022
f0080d8
feat: database curd
kl7sn Feb 8, 2022
2b78075
Merge branch 'main' of github.com:kl7sn/mogo
kl7sn Feb 8, 2022
10a5ef1
Merge branch 'master'
kl7sn Feb 8, 2022
1193e41
fix: Added log library form field validation
m1666 Feb 8, 2022
14165d9
fix: if view create error do manual rollback
kl7sn Feb 8, 2022
5d84e6f
Merge branch 'main' of github.com:kl7sn/mogo
kl7sn Feb 8, 2022
4517124
fix: Added log library form field validation
m1666 Feb 8, 2022
628311a
feat: database operator
kl7sn Feb 8, 2022
4a2d601
Merge branches 'main' and 'main' of github.com:kl7sn/mogo
kl7sn Feb 8, 2022
2c06abf
fix: Interface failure transmission after modification
m1666 Feb 10, 2022
98aefa7
feat: name->id
kl7sn Feb 10, 2022
02a6f4e
Merge branch 'main' of github.com:kl7sn/mogo
kl7sn Feb 10, 2022
a6cf7e8
feat: Added the log library details page
m1666 Feb 10, 2022
ca903a5
feat: table detail
kl7sn Feb 10, 2022
a5435b2
Merge branch 'main' of github.com:kl7sn/mogo
kl7sn Feb 10, 2022
b8c189c
docs: documentation updates
kl7sn Feb 10, 2022
95d6e86
Merge branch 'shimohq:master' into main
kl7sn Feb 10, 2022
66ba70f
fix:Fix the log Detail Editor style
m1666 Feb 10, 2022
60919dd
Merge remote-tracking branch 'origin/main'
m1666 Feb 10, 2022
0c413da
fix: remove ingress template
kl7sn Feb 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions api/internal/apiv1/base/database.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package base

import (
"github.com/gotomicro/ego-component/egorm"
"github.com/spf13/cast"

"github.com/shimohq/mogo/api/internal/invoker"
"github.com/shimohq/mogo/api/internal/service"
"github.com/shimohq/mogo/api/pkg/component/core"
"github.com/shimohq/mogo/api/pkg/model/db"
"github.com/shimohq/mogo/api/pkg/model/view"
)

func DatabaseCreate(c *core.Context) {
iid := cast.ToInt(c.Param("iid"))
if iid == 0 {
c.JSONE(core.CodeErr, "invalid parameter", nil)
return
}
var req view.ReqDatabaseCreate
if err := c.Bind(&req); err != nil {
c.JSONE(1, "invalid parameter: "+err.Error(), nil)
return
}
obj := db.Database{
Iid: iid,
Name: req.Name,
Uid: c.Uid(),
}
op, err := service.InstanceManager.Load(iid)
if err != nil {
c.JSONE(core.CodeErr, err.Error(), nil)
return
}
err = op.DatabaseCreate(req.Name)
if err != nil {
c.JSONE(core.CodeErr, "create failed: "+err.Error(), nil)
return
}
if err = db.DatabaseCreate(invoker.Db, &obj); err != nil {
c.JSONE(1, "create failed: "+err.Error(), nil)
return
}
c.JSONOK()
}

func DatabaseList(c *core.Context) {
iid := cast.ToInt(c.Param("iid"))
conds := egorm.Conds{}
if iid != 0 {
conds["iid"] = iid
}
dl, err := db.DatabaseList(invoker.Db, conds)
if err != nil {
c.JSONE(core.CodeErr, err.Error(), nil)
return
}
res := make([]view.RespDatabaseItem, 0)
for _, row := range dl {
res = append(res, view.RespDatabaseItem{
Id: row.ID,
Iid: row.Iid,
Name: row.Name,
Uid: row.Uid,
DatasourceType: row.Instance.Datasource,
})
}
c.JSONE(core.CodeOK, "succ", res)
return
}

func DatabaseDelete(c *core.Context) {
id := cast.ToInt(c.Param("id"))
if id == 0 {
c.JSONE(1, "invalid parameter", nil)
return
}
err := db.DatabaseDelete(invoker.Db, id)
if err != nil {
c.JSONE(1, "failed to delete, corresponding record does not exist in database: "+err.Error(), nil)
return
}
c.JSONOK()
}
176 changes: 176 additions & 0 deletions api/internal/apiv1/base/table.go
E377
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
package base

import (
"github.com/gotomicro/ego-component/egorm"
"github.com/spf13/cast"

"github.com/shimohq/mogo/api/internal/invoker"
"github.com/shimohq/mogo/api/internal/service"
"github.com/shimohq/mogo/api/pkg/component/core"
"github.com/shimohq/mogo/api/pkg/model/db"
"github.com/shimohq/mogo/api/pkg/model/view"
)

func TableCreate(c *core.Context) {
did := cast.ToInt(c.Param("did"))
if did == 0 {
c.JSONE(core.CodeErr, "params error", nil)
return
}
var param view.ReqTableCreate
err := c.Bind(&param)
if err != nil {
c.JSONE(core.CodeErr, "invalid parameter: "+err.Error(), nil)
return
}
databaseInfo, err := db.DatabaseInfo(invoker.Db, did)
if err != nil {
c.JSONE(core.CodeErr, "invalid parameter: "+err.Error(), nil)
return
}
op, err := service.InstanceManager.Load(databaseInfo.Iid)
if err != nil {
c.JSONE(core.CodeErr, err.Error(), nil)
return
}
s, d, v, err := op.TableCreate(did, databaseInfo.Name, param)
if err != nil {
c.JSONE(core.CodeErr, "create failed: "+err.Error(), nil)
return
}
err = db.TableCreate(invoker.Db, &db.Table{
Did: did,
Name: param.TableName,
Typ: param.Typ,
Days: param.Days,
Brokers: param.Brokers,
Topic: param.Topics,
SqlData: d,
SqlStream: s,
SqlView: v,
Uid: c.Uid(),
})
if err != nil {
c.JSONE(core.CodeErr, "create failed: "+err.Error(), nil)
return
}
c.JSONOK()
}

func TableInfo(c *core.Context) {
tid := cast.ToInt(c.Param("id"))
if tid == 0 {
c.JSONE(core.CodeErr, "params error", nil)
return
}
tableInfo, err := db.TableInfo(invoker.Db, tid)
if err != nil {
c.JSONE(core.CodeErr, "read list failed: "+err.Error(), nil)
return
}
res := view.RespTableDetail{
Did: tableInfo.Did,
Name: tableInfo.Name,
Typ: tableInfo.Typ,
Days: tableInfo.Days,
Brokers: tableInfo.Brokers,
Topic: tableInfo.Topic,
Uid: tableInfo.Uid,
}
keys := make([]string, 0)
data := make(map[string]string, 0)
keys = append(keys, "data_sql", "stream_sql", "view_sql")
data["data_sql"] = tableInfo.SqlData
data["stream_sql"] = tableInfo.SqlStream
data["view_sql"] = tableInfo.SqlView
conds := egorm.Conds{}
conds["tid"] = tableInfo.ID
viewList, err := db.ViewList(invoker.Db, conds)
if err != nil {
c.JSONE(core.CodeErr, "view sql read failed: "+err.Error(), nil)
return
}
for _, v := range viewList {
keys = append(keys, v.Name+"_view_sql")
data[v.Name+"_view_sql"] = v.SqlView
}
res.SQLContent.Keys = keys
res.SQLContent.Data = data
c.JSONOK(res)
return
}

func TableList(c *core.Context) {
did := int64(cast.ToInt(c.Param("did")))
if did == 0 {
c.JSONE(core.CodeErr, "params error", nil)
return
}
conds := egorm.Conds{}
conds["did"] = did
tableList, err := db.TableList(invoker.Db, conds)
if err != nil {
c.JSONE(core.CodeErr, "read list failed: "+err.Error(), nil)
return
}
res := make([]view.RespTableSimple, 0)
for _, row := range tableList {
res = append(res, view.RespTableSimple{
Id: row.ID,
TableName: row.Name,
})
}
c.JSONOK(res)
return
}

func TableDelete(c *core.Context) {
id := cast.ToInt(c.Param("id"))
tableInfo, err := db.TableInfo(invoker.Db, id)
if err != nil {
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
return
}
if tableInfo.ID == 0 {
c.JSONE(core.CodeErr, "Unable to delete tables not created by Mogo.", nil)
return
}

table := tableInfo.Name
iid := tableInfo.Database.Iid
database := tableInfo.Database.Name

op, err := service.InstanceManager.Load(iid)
if err != nil {
c.JSONE(core.CodeErr, err.Error(), nil)
return
}
err = op.TableDrop(database, table, tableInfo.ID)
if err != nil {
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
return
}
tx := invoker.Db.Begin()
err = db.TableDelete(tx, tableInfo.ID)
if err != nil {
tx.Rollback()
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
return
}
err = db.ViewDeleteByTableID(tx, tableInfo.ID)
if err != nil {
tx.Rollback()
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
return
}
err = db.IndexDeleteBatch(tx, tableInfo.ID)
if err != nil {
tx.Rollback()
return
}
if err = tx.Commit().Error; err != nil {
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
return
}
c.JSONOK("delete succeeded. Note that Kafka may be backlogged.")
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package inquiry
package base

import (
"strings"
Expand Down Expand Up @@ -49,7 +49,8 @@ func ViewDelete(c *core.Context) {
c.JSONE(1, err.Error(), nil)
return
}
op, err := service.InstanceManager.Load(tableInfo.Iid)
databaseInfo, _ := db.DatabaseInfo(tx, tableInfo.Did)
op, err := service.InstanceManager.Load(databaseInfo.Iid)
if err != nil {
tx.Rollback()
c.JSONE(core.CodeErr, err.Error(), nil)
Expand Down Expand Up @@ -89,24 +90,9 @@ func ViewDelete(c *core.Context) {
}

func ViewCreate(c *core.Context) {
iid := cast.ToInt(c.Param("iid"))
database := strings.TrimSpace(c.Param("db"))
table := strings.TrimSpace(c.Param("table"))
if iid == 0 || database == "" || table == "" {
c.JSONE(core.CodeErr, "params error", nil)
return
}
conds := egorm.Conds{}
conds["iid"] = iid
conds["database"] = database
conds["name"] = table
tableInfo, err := db.TableInfoX(conds)
if err != nil {
c.JSONE(core.CodeErr, "create failed: "+err.Error(), nil)
return
}
tid := cast.ToInt(c.Param("id"))
params := view.ReqViewCreate{}
err = c.Bind(&params)
err := c.Bind(&params)
if err != nil {
c.JSONE(1, err.Error(), nil)
return
Expand All @@ -116,7 +102,7 @@ func ViewCreate(c *core.Context) {
return
}
current := db.View{
Tid: tableInfo.ID,
Tid: tid,
Name: params.Name,
IsUseDefaultTime: params.IsUseDefaultTime,
Key: params.Key,
Expand All @@ -130,14 +116,16 @@ func ViewCreate(c *core.Context) {
}
var viewList []*db.View
condsView := egorm.Conds{}
condsView["tid"] = tableInfo.ID
condsView["tid"] = tid
viewList, err = db.ViewList(tx, condsView)
if err != nil {
tx.Rollback()
c.JSONE(1, err.Error(), nil)
return
}
op, err := service.InstanceManager.Load(iid)
tableInfo, _ := db.TableInfo(tx, tid)
databaseInfo, _ := db.DatabaseInfo(tx, tableInfo.Did)
op, err := service.InstanceManager.Load(databaseInfo.Iid)
if err != nil {
tx.Rollback()
c.JSONE(core.CodeErr, err.Error(), nil)
Expand Down Expand Up @@ -225,7 +213,8 @@ func ViewUpdate(c *core.Context) {
c.JSONE(1, err.Error(), nil)
return
}
op, err := service.InstanceManager.Load(tableInfo.Iid)
databaseInfo, _ := db.DatabaseInfo(tx, tableInfo.Did)
op, err := service.InstanceManager.Load(databaseInfo.Iid)
if err != nil {
tx.Rollback()
c.JSONE(core.CodeErr, err.Error(), nil)
Expand Down Expand Up @@ -283,20 +272,17 @@ func ViewInfo(c *core.Context) {
}

func ViewList(c *core.Context) {
iid := cast.ToInt(c.Param("iid"))
database := strings.TrimSpace(c.Param("db"))
table := strings.TrimSpace(c.Param("table"))
if iid == 0 || database == "" || table == "" {
id := cast.ToInt(c.Param("id"))
if id == 0 {
c.JSONE(core.CodeErr, "params error", nil)
return
}
conds := egorm.Conds{}
conds["iid"] = iid
conds["database"] = database
conds["name"] = table
tableInfo, err := db.TableInfoX(conds)
if err != nil {
c.JSONE(core.CodeErr, "delete failed: "+err.Error(), nil)
tableInfo, _ := db.TableInfo(invoker.Db, id)
iid := tableInfo.Database.Iid
database := tableInfo.Database.Name
table := tableInfo.Name
if iid == 0 || database == "" || table == "" {
c.JSONE(core.CodeErr, "params error", nil)
return
}
condsView := egorm.Conds{}
Expand Down
Loading
0