mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-19 14:05:23 +00:00
Fix db read by id (#192)
This commit is contained in:
@@ -211,34 +211,41 @@ func (e *Db) Read(ctx context.Context, req *db.ReadRequest, rsp *db.ReadResponse
|
|||||||
if req.Limit == 0 {
|
if req.Limit == 0 {
|
||||||
req.Limit = 25
|
req.Limit = 25
|
||||||
}
|
}
|
||||||
|
|
||||||
db = db.Table(tableName)
|
db = db.Table(tableName)
|
||||||
for _, query := range queries {
|
if req.Id != "" {
|
||||||
logger.Infof("Query field: %v, op: %v, type: %v", query.Field, query.Op, query.Value)
|
logger.Infof("Query by id: %v", req.Id)
|
||||||
typ := "text"
|
db = db.Where("id = ?", req.Id)
|
||||||
switch query.Value.(type) {
|
} else {
|
||||||
case int64:
|
for _, query := range queries {
|
||||||
typ = "int"
|
logger.Infof("Query field: %v, op: %v, type: %v", query.Field, query.Op, query.Value)
|
||||||
case bool:
|
typ := "text"
|
||||||
typ = "boolean"
|
switch query.Value.(type) {
|
||||||
|
case int64:
|
||||||
|
typ = "int"
|
||||||
|
case bool:
|
||||||
|
typ = "boolean"
|
||||||
|
}
|
||||||
|
op := ""
|
||||||
|
switch query.Op {
|
||||||
|
case itemEquals:
|
||||||
|
op = "="
|
||||||
|
case itemGreaterThan:
|
||||||
|
op = ">"
|
||||||
|
case itemGreaterThanEquals:
|
||||||
|
op = ">="
|
||||||
|
case itemLessThan:
|
||||||
|
op = "<"
|
||||||
|
case itemLessThanEquals:
|
||||||
|
op = "<="
|
||||||
|
case itemNotEquals:
|
||||||
|
op = "!="
|
||||||
|
}
|
||||||
|
queryField := correctFieldName(query.Field)
|
||||||
|
db = db.Where(fmt.Sprintf("(%v)::%v %v ?", queryField, typ, op), query.Value)
|
||||||
}
|
}
|
||||||
op := ""
|
|
||||||
switch query.Op {
|
|
||||||
case itemEquals:
|
|
||||||
op = "="
|
|
||||||
case itemGreaterThan:
|
|
||||||
op = ">"
|
|
||||||
case itemGreaterThanEquals:
|
|
||||||
op = ">="
|
|
||||||
case itemLessThan:
|
|
||||||
op = "<"
|
|
||||||
case itemLessThanEquals:
|
|
||||||
op = "<="
|
|
||||||
case itemNotEquals:
|
|
||||||
op = "!="
|
|
||||||
}
|
|
||||||
queryField := correctFieldName(query.Field)
|
|
||||||
db = db.Where(fmt.Sprintf("(%v)::%v %v ?", queryField, typ, op), query.Value)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
orderField := "created_at"
|
orderField := "created_at"
|
||||||
if req.OrderBy != "" {
|
if req.OrderBy != "" {
|
||||||
orderField = req.OrderBy
|
orderField = req.OrderBy
|
||||||
|
|||||||
Reference in New Issue
Block a user