|
@@ -2,7 +2,6 @@ package rest
|
|
|
|
|
|
import (
|
|
import (
|
|
"fmt"
|
|
"fmt"
|
|
- "log"
|
|
|
|
"reflect"
|
|
"reflect"
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
@@ -36,7 +35,6 @@ func parseVal(from, to reflect.Value, fieldName string) IErrorArgs {
|
|
func parseType(from, to reflect.Value, fieldName string) IErrorArgs {
|
|
func parseType(from, to reflect.Value, fieldName string) IErrorArgs {
|
|
from = realValue(from)
|
|
from = realValue(from)
|
|
to = realValue(to)
|
|
to = realValue(to)
|
|
- log.Println("=== to", to.Kind(), to.Type().Name())
|
|
|
|
switch to.Kind() {
|
|
switch to.Kind() {
|
|
case reflect.Interface:
|
|
case reflect.Interface:
|
|
if from.Kind() != reflect.Invalid {
|
|
if from.Kind() != reflect.Invalid {
|
|
@@ -107,16 +105,11 @@ loop:
|
|
fVal := to.Field(i)
|
|
fVal := to.Field(i)
|
|
// проверяем тег, если он есть
|
|
// проверяем тег, если он есть
|
|
tag := fType.Tag.Get("rest")
|
|
tag := fType.Tag.Get("rest")
|
|
- log.Println("=================================", fType.Name)
|
|
|
|
if fType.Anonymous && fType.Type.Kind() == reflect.Ptr {
|
|
if fType.Anonymous && fType.Type.Kind() == reflect.Ptr {
|
|
- log.Println("PTR...")
|
|
|
|
elem := fType.Type.Elem()
|
|
elem := fType.Type.Elem()
|
|
if elem.Kind() == reflect.Struct {
|
|
if elem.Kind() == reflect.Struct {
|
|
- log.Print("ELEM struct...")
|
|
|
|
if fVal.IsNil() {
|
|
if fVal.IsNil() {
|
|
- log.Println("IS_NIL")
|
|
|
|
fVal.Set(reflect.New(elem))
|
|
fVal.Set(reflect.New(elem))
|
|
- log.Println(fVal.IsNil())
|
|
|
|
}
|
|
}
|
|
if ierr := parseStruct(from, fVal.Elem(), prefixFieldName(fieldName, fType.Name)); ierr != nil {
|
|
if ierr := parseStruct(from, fVal.Elem(), prefixFieldName(fieldName, fType.Name)); ierr != nil {
|
|
return ierr
|
|
return ierr
|