本文整理汇总了Golang中github.com/eaciit/toolkit.M.Get方法的典型用法代码示例。如果您正苦于以下问题:Golang M.Get方法的具体用法?Golang M.Get怎么用?Golang M.Get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/eaciit/toolkit.M
的用法示例。
在下文中一共展示了M.Get方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: extractDataBulk
func extractDataBulk(attrList []string, data toolkit.M, driverName string) string {
var values string
if data != nil {
for i, attr := range attrList {
val := data.Get(attr)
var datatypelist = []string{"map", "invalid", "struct", "slice"}
var value reflect.Value
if val != nil {
value = reflect.Zero(reflect.TypeOf(val))
}
if toolkit.HasMember(datatypelist, value.Kind().String()) {
continue
}
stringValues := StringValue(val, driverName)
if i == 0 {
values = "(" + stringValues
} else {
values += ", " + stringValues
}
}
values += ")"
}
return values
}
示例2: CheckValue
func CheckValue(v toolkit.M, f *Filter) (bool, interface{}) {
resbool := false
filedtemp := []interface{}{}
resbool = v.Has(f.Field)
if resbool {
return resbool, v.Get(f.Field)
} else if strings.Contains(f.Field, ".") {
ar := strings.Split(f.Field, ".")
for i, dt := range ar {
if i == 0 {
resbool = v.Has(dt)
if !resbool {
break
} else {
filedtemp = append(filedtemp, v.Get(dt))
}
} else {
temp := toolkit.M(filedtemp[i-1].(map[string]interface{}))
resbool = temp.Has(dt)
if !resbool {
break
} else {
filedtemp = append(filedtemp, temp.Get(dt))
}
}
if i == len(ar)-1 {
return true, filedtemp[i]
}
}
}
return false, nil
}
示例3: Write
/*
Write Write bytes of data into sebar storage.
- Data need to be defined as []byte on in["data"]
- To use memory or disk should be defined on in["storage"] as: MEM, DSK (sebar.StorageTypeMemory, sebar.StorageTypeMemory)
- If no in["storage"] or the value is not eq to either disk or memory, it will be defaulted to memory
*/
func (s *Storage) Write(in toolkit.M) *toolkit.Result {
r := toolkit.NewResult()
key := in.Get("key").(string)
storage := StorageTypeEnum(in.GetString("storage"))
if storage != StorageTypeMemory && storage != StorageTypeDisk {
storage = StorageTypeMemory
}
dataToWrite := in.Get("data").([]byte)
dataLen := len(dataToWrite)
// Validation
nodeCoordinator := s.NodeByID(s.Coordinator)
if nodeCoordinator == nil {
return r.SetErrorTxt(s.Address + " no Coordinator has been setup")
}
// Since all is ok commit the change
var ms *StorageMedia
if storage == StorageTypeMemory {
ms = s.MemoryStorage
} else {
ms = s.DiskStorage
}
ms.write(key, dataToWrite, nodeCoordinator)
s.Log.Info(toolkit.Sprintf("Writing %s (%s) to node %s", key, ParseSize(float64(dataLen)), s.Address))
return r
}
示例4: UpdateMetadata
func (c *Coordinator) UpdateMetadata(in toolkit.M) *toolkit.Result {
result := toolkit.NewResult()
keys := []string{}
bs := in.Get("keys", []byte{}).([]byte)
toolkit.FromBytes(bs, "gob", &keys)
return result
}
示例5: parseQuery
func (d *DataBrowserController) parseQuery(conn dbox.IConnection, dbrowser colonycore.DataBrowser, datacon *colonycore.Connection) (dbox.IQuery, error) {
var dataQuery dbox.IQuery
if dbrowser.QueryType == "nonQueryText" {
dataQuery = conn.NewQuery().From(dbrowser.TableNames)
} else if dbrowser.QueryType == "SQL" {
if toolkit.HasMember(rdbms, datacon.Driver) {
dataQuery = conn.NewQuery().Command("freequery", toolkit.M{}.
Set("syntax", dbrowser.QueryText))
} else {
return nil, errors.New("Free Text Query with SQL only for RDBMS, please use Dbox")
}
} else if dbrowser.QueryType == "Dbox" {
queryInfo := toolkit.M{}
toolkit.UnjsonFromString(dbrowser.QueryText, &queryInfo)
toolkit.Println("queryinfo", queryInfo)
if qFrom := queryInfo.Get("from", "").(string); qFrom != "" {
dataQuery = conn.NewQuery()
dataQuery = dataQuery.From(qFrom)
}
if qSelect := queryInfo.Get("select", "").(string); qSelect != "" {
if qSelect != "*" {
dataQuery = dataQuery.Select(strings.Split(qSelect, ",")...)
}
}
}
return dataQuery, nil
}
示例6: ReadVariable
func ReadVariable(f *dbox.Filter, in toolkit.M) *dbox.Filter {
f.Field = strings.ToLower(f.Field)
if (f.Op == "$and" || f.Op == "$or") && strings.Contains(reflect.TypeOf(f.Value).String(), "dbox.Filter") {
fs := f.Value.([]*dbox.Filter)
for i, ff := range fs {
bf := ReadVariable(ff, in)
fs[i] = bf
}
f.Value = fs
} else {
if reflect.TypeOf(f.Value).Kind() == reflect.Slice {
fSlice := f.Value.([]interface{})
// nilai fSlice : [@name1 @name2]
for i := 0; i < len(fSlice); i++ {
// nilai fSlice [i] : @name1
if len(cast.ToString(f.Value)) > 0 && string(cast.ToString(fSlice[i])[0]) == "@" {
fSlice[i] = in.Get(cast.ToString(fSlice[i]), "")
}
}
f.Value = fSlice
} else if len(cast.ToString(f.Value)) > 0 && string(cast.ToString(f.Value)[0]) == "@" {
f.Value = in.Get(cast.ToString(f.Value), "")
}
}
return f
}
示例7: Find
func (d *DataContext) Find(m IModel, parms tk.M) (dbox.ICursor, error) {
////_ = "breakpoint"
q := d.Connection.NewQuery().From(m.TableName())
if qe := parms.Get(ConfigSelect); qe != nil {
fields := qe.(string)
selectFields := strings.Split(fields, ",")
q = q.Select(selectFields...)
}
if qe := parms.Get(ConfigWhere, nil); qe != nil {
//q = q.Where(qe.(*dbox.Filter))
filters := qe.([]*dbox.Filter)
if len(filters) > 0 {
q = q.Where(dbox.And(filters...))
}
}
if qe := parms.Get(ConfigOrder, nil); qe != nil {
q = q.Order(qe.([]string)...)
}
if qe := parms.Get(ConfigSkip, nil); qe != nil {
q = q.Skip(qe.(int))
}
if qe := parms.Get(ConfigLimit, nil); qe != nil {
q = q.Take(qe.(int))
}
//fmt.Printf("Debug Q: %s\n", tk.JsonString(q))
return q.Cursor(nil)
//return c
}
示例8: SaveNewWidget
func (p *Page) SaveNewWidget(payload toolkit.M, widgetPath string) (*WidgetPage, error) {
wp := new(WidgetPage)
wp.ID = payload.Get("widgetPageId", "").(string)
wp.WidgetID = payload.Get("widgetId", "").(string)
widget := new(Widget)
widget.ID = wp.WidgetID
widget.GetById()
wp.ConfigDefault = widget.Config
extractDest := filepath.Join(widgetPath, widget.ID)
path, err := GetWidgetPath(extractDest)
if path == "" {
return nil, errors.New("directory doesn't contains index.html")
}
if err != nil {
return nil, err
}
getConfigFile := filepath.Join(path, "config-widget.json")
result, err := GetJsonFile(getConfigFile)
if err != nil {
return nil, err
}
if result != nil { /*going to select dataSources field only from config-widget.json*/
for _, value := range result[0].Get("dataSources").([]interface{}) {
wp.DataSources = append(wp.DataSources, value.(map[string]interface{}))
}
}
return wp, nil
}
示例9: Exec
func (q *Query) Exec(parm toolkit.M) (e error) {
data := parm.Get("data")
driverName := q.GetDriverDB()
if toolkit.IsSlice(data) && driverName == "mssql" {
e = q.insertBulk(parm)
} else {
_, e = q.ExecOut(parm)
}
return e
}
示例10: GetMgoValue
func GetMgoValue(d tk.M, fieldName string) interface{} {
index := strings.Index(fieldName, ".")
if index < 0 {
return d.Get(fieldName)
} else {
data := d.Get(fieldName[0:index])
if data != nil {
return GetMgoValue(data.(tk.M), fieldName[(index+1):len(fieldName)])
} else {
return nil
}
}
}
示例11: Finds
func Finds(o orm.IModel, param toolkit.M) (dbox.ICursor, error) {
var filters []*dbox.Filter
params := toolkit.M{}
params.Set("where", filters)
if qe := param.Get("order", nil); qe != nil {
params.Set("order", qe.([]string))
}
if qe := param.Get("skip", nil); qe != nil {
params.Set("skip", qe.(int))
}
if qe := param.Get("take", nil); qe != nil {
params.Set("limit", qe.(int))
}
if qe := param.Get("where", nil); qe != nil {
filters = append(filters, qe.(*dbox.Filter))
params.Set("where", filters)
}
c, e := ctx().Find(o, params)
if e != nil {
return nil, errors.New("Core.Find: " + e.Error())
}
return c, nil
}
示例12: getCondition
func (c *Cursor) getCondition(condition toolkit.M) bool {
var flag bool
var dataCheck toolkit.M
for i, v := range condition {
if i == "$and" || i == "$or" {
flag = true
} else if v != dataCheck.Get(i, "").(string) {
flag = false
}
}
return flag
}
示例13: getExcelValue
func (this *DataBrowserController) getExcelValue(data tk.M, field string) (result interface{}) {
field = strings.ToLower(field)
numberOfDot := strings.Count(field, ".")
if numberOfDot > 0 {
d := data.Get(field[0:strings.Index(field, ".")]).(tk.M)
newField := field[strings.Index(field, ".")+1 : len(field)]
result = this.getExcelValue(d, newField)
} else {
result = data.Get(field)
}
if result == nil {
result = ""
}
return
}
示例14: compileUpdateFrom
func (q *Query) compileUpdateFrom(queryString string, ins toolkit.M) string {
updateString := func() string {
if !ins.Has("data") {
return ""
}
var updates []string
for k, v := range ins.Get("data", toolkit.M{}).(toolkit.M) {
updates = append(updates, fmt.Sprintf("%s = %s", k, q.getAsString(v)))
}
return strings.Join(updates, ", ")
}()
queryString = fmt.Sprintf("%sSET %s ", queryString, updateString)
return queryString
}
示例15: KendoGridSettings
func (a *Controller) KendoGridSettings(ins toolkit.M) toolkit.M {
if ins == nil {
ins = toolkit.M{}
}
s := toolkit.M{}
q_skip := a.Ctx.Input.Query("skip")
q_page := a.Ctx.Input.Query("page")
q_size := a.Ctx.Input.Query("pageSize")
if q_skip != "" {
s.Set("skip", toolkit.ToInt(q_skip))
}
if q_page != "" {
s.Set("page", toolkit.ToInt(q_page))
}
if q_size != "" {
s.Set("limit", toolkit.ToInt(q_size))
}
sortField := strings.ToLower(a.Ctx.Input.Query("sort[0][field]"))
sortDir := a.Ctx.Input.Query("sort[0][dir]")
if sortField != "" {
if sortField == "id" {
sortField = "_id"
}
if sortDir == "" || sortDir == "asc" {
s.Set("order", []string{sortField})
} else {
s.Set("order", []string{"-" + sortField})
}
}
if fqe := a.KendoGridFilter("filter"); fqe != nil {
if ins.Has("where") {
fqe = dbs.And(fqe, ins.Get("where").(*dbs.QE))
}
s.Set("where", fqe)
}
return s
}