Fix db read by id (#192)

This commit is contained in:
Janos Dobronszki
2021-08-19 13:51:25 +01:00
committed by GitHub
parent f84fbd542b
commit ecd9df85d9

View File

@@ -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