Skip to content

Commit b2285c7

Browse files
authored
0.2.0-beta4 (glennliao#20)
* ## 0.2.0-beta3 * ## 0.2.0-beta4
1 parent 0b96d1c commit b2285c7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+307
-218
lines changed

@doc/access.md

100644100755
File mode changed.

@doc/action.md

100644100755
File mode changed.

@doc/doc_ref.md

100644100755
File mode changed.

@doc/faq.md

100644100755
File mode changed.

@doc/functions.md

100644100755
File mode changed.

@doc/query.md

100644100755
File mode changed.

@doc/roadmap.md

100644100755
File mode changed.

@doc/v0.2.md

100644100755
File mode changed.

LICENSE

100644100755
File mode changed.

README.md

100644100755
File mode changed.

README.zh-CN.md

100644100755
File mode changed.

action/action.go

100644100755
File mode changed.

action/hook.go

100644100755
File mode changed.

action/node.go

100644100755
+33-32
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ func newNode(key string, req []model.Map, structure *config.Structure, executor
4141
Key: key, req: req, structure: structure, executor: executor,
4242
}
4343

44+
n.Data = []model.Map{}
45+
n.Where = []model.Map{}
46+
47+
// ?
48+
for _ = range n.req {
49+
50+
n.Data = append(n.Data, model.Map{})
51+
n.Where = append(n.Where, model.Map{})
52+
53+
}
54+
4455
if strings.HasSuffix(key, consts.ListKeySuffix) {
4556
n.Key = key[0 : len(key)-len(consts.ListKeySuffix)]
4657
n.IsList = true
@@ -51,13 +62,11 @@ func newNode(key string, req []model.Map, structure *config.Structure, executor
5162

5263
// parse req data to data/where
5364
func (n *Node) parseReq(method string) {
54-
n.Data = []model.Map{}
55-
n.Where = []model.Map{}
5665

5766
for i, item := range n.req {
5867

59-
n.Data = append(n.Data, model.Map{})
60-
n.Where = append(n.Where, model.Map{})
68+
//n.Data = append(n.Data, model.Map{})
69+
//n.Where = append(n.Where, model.Map{})
6170

6271
for key, val := range item {
6372

@@ -101,8 +110,6 @@ func (n *Node) parse(ctx context.Context, method string) error {
101110
n.tableName = access.Name
102111
n.RowKey = access.RowKey
103112

104-
n.parseReq(method)
105-
106113
// 0. 角色替换
107114

108115
err = n.roleUpdate()
@@ -137,6 +144,8 @@ func (n *Node) parse(ctx context.Context, method string) error {
137144
// 3. get where by accessCondition
138145
err = n.whereUpdate(ctx, method, accessRoles)
139146

147+
n.parseReq(method)
148+
140149
return err
141150
}
142151

@@ -329,11 +338,12 @@ func (n *Node) do(ctx context.Context, method string) (ret model.Map, err error)
329338
return nil, err
330339
}
331340

341+
var rowKeyVal model.Map
342+
var rowKey string
343+
332344
switch method {
333345
case http.MethodPost:
334346

335-
var rowKeyVal model.Map
336-
337347
access, err := n.action.actionConfig.GetAccessConfig(n.Key, true)
338348
if err != nil {
339349
return nil, err
@@ -358,30 +368,7 @@ func (n *Node) do(ctx context.Context, method string) (ret model.Map, err error)
358368
}
359369
}
360370

361-
ret, err := executor.GetActionExecutor(n.executor).Do(ctx, executor.ActionExecutorReq{
362-
Method: method,
363-
Table: n.tableName,
364-
Data: n.Data,
365-
Where: nil,
366-
})
367-
368-
if err != nil {
369-
return nil, err
370-
}
371-
372-
if len(n.Data) > 0 { //多条插入时返回值已经应该无意义了
373-
374-
jsonStyle := n.action.JsonFieldStyle
375-
if rowKeyVal != nil {
376-
for k, v := range rowKeyVal {
377-
if k == consts.RowKey {
378-
ret[jsonStyle(ctx, n.tableName, access.RowKey)] = v
379-
} else {
380-
ret[jsonStyle(ctx, n.tableName, k)] = v
381-
}
382-
}
383-
}
384-
}
371+
rowKey = access.RowKey
385372

386373
case http.MethodPut:
387374
case http.MethodDelete:
@@ -401,6 +388,20 @@ func (n *Node) do(ctx context.Context, method string) (ret model.Map, err error)
401388
return nil, err
402389
}
403390

391+
if len(n.Data) == 1 {
392+
393+
jsonStyle := n.action.JsonFieldStyle
394+
if rowKeyVal != nil {
395+
for k, v := range rowKeyVal {
396+
if k == consts.RowKey {
397+
ret[jsonStyle(ctx, n.tableName, rowKey)] = v
398+
} else {
399+
ret[jsonStyle(ctx, n.tableName, k)] = v
400+
}
401+
}
402+
}
403+
}
404+
404405
n.Ret = ret
405406

406407
err = EmitHook(ctx, AfterExecutorDo, n, method)

apijson.go

100644100755
File mode changed.

config/access.go

100644100755
File mode changed.

config/access_config.go

100644100755
File mode changed.

config/action_config.go

100644100755
File mode changed.

config/config.go

100644100755
+4-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func New() *Config {
7878

7979
func (c *Config) ReLoad() {
8080

81-
c.Access.accessConfigMap = make(map[string]AccessConfig)
81+
accessConfigMap := make(map[string]AccessConfig)
8282

8383
ctx := context.Background()
8484

@@ -108,10 +108,12 @@ func (c *Config) ReLoad() {
108108
access.FieldsGet[role].MaxCount = &defaultMaxCount
109109
}
110110
}
111-
c.Access.accessConfigMap[access.Alias] = access
111+
accessConfigMap[access.Alias] = access
112112
}
113113
}
114114

115+
c.Access.accessConfigMap = accessConfigMap
116+
115117
requestListProvider := requestListProviderMap[c.RequestListProvider]
116118
if requestListProvider != nil {
117119
requestList := requestListProvider(ctx)

config/dbmeta.go

100644100755
File mode changed.

config/executor/action.go

100644100755
File mode changed.

config/executor/query.go

100644100755
File mode changed.

config/field.go

100644100755
File mode changed.

config/functions.go

100644100755
File mode changed.

config/query_config.go

100644100755
File mode changed.

config/request_config.go

100644100755
File mode changed.

config/rowkeygen.go

100644100755
File mode changed.

config/tables/table.go

100644100755
File mode changed.

consts/access.go

100644100755
File mode changed.

consts/errors.go

100644100755
File mode changed.

consts/node.go

100644100755
File mode changed.

drivers/config/goframe/config.go

-142
This file was deleted.

drivers/executor/goframe/driver.go

-11
This file was deleted.

drivers/goframe/all.go

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package goframe
2+
3+
import (
4+
"github.com/glennliao/apijson-go/config"
5+
"github.com/glennliao/apijson-go/config/executor"
6+
gfConfig "github.com/glennliao/apijson-go/drivers/goframe/config"
7+
gfExecutor "github.com/glennliao/apijson-go/drivers/goframe/executor"
8+
)
9+
10+
func init() {
11+
12+
config.RegAccessListProvider(gfConfig.ProviderName, gfConfig.AccessListDBProvider)
13+
config.RegRequestListProvider(gfConfig.ProviderName, gfConfig.RequestListProvider)
14+
15+
config.RegDbMetaProvider(gfConfig.ProviderName, gfConfig.DbMetaProvider)
16+
17+
executor.RegQueryExecutor("default", gfExecutor.New)
18+
executor.RegActionExecutor("default", &gfExecutor.ActionExecutor{})
19+
20+
// todo 添加未配置driver时的报错信息, 而不是 invalid memory address or nil pointer dereference
21+
}

0 commit comments

Comments
 (0)