func handleSchemaListCmd()

in server/schema_handler.go [165:204]


func handleSchemaListCmd(w http.ResponseWriter, t *schemaReq) error {
	var err error
	var cond string
	var args = make([]interface{}, 0)

	cond, args = state.AddSQLCond(cond, args, "AND", "name", "=", t.Name)
	cond, args = state.AddSQLCond(cond, args, "AND", "type", "=", t.Type)
	cond, args = state.AddSQLCond(cond, args, "AND", "schema_body", "=", t.Body)
	cond, args = addFilter(cond, args, []string{"name", "type", "schema_body"}, t.Filter)

	if cond != "" {
		cond = " WHERE " + cond
	}

	if t.Offset != 0 || t.Limit != 0 {
		if t.Limit == 0 && t.Offset != 0 {
			t.Limit = int64((^uint64(0)) >> 1) //MaxInt
		}
		cond += fmt.Sprintf(" LIMIT %v,%v", t.Offset, t.Limit)
	}

	var rows []state.SchemaRow
	if rows, err = state.ListOutputSchema(cond, args...); err == nil {
		var resp []byte
		for _, v := range rows {
			var b []byte
			if b, err = json.Marshal(v); err != nil {
				break
			}
			resp = append(resp, b...)
			resp = append(resp, '\n')
		}

		if err == nil {
			_, err = w.Write(resp)
		}
	}

	return err
}