package api

import (
	"fmt"
	"reflect"
	"strings"
)

type APIError struct {
	Message string `json:"message"`
}

func structJsonLookup(v interface{}) (map[string]reflect.Kind, error) {
	rt := reflect.TypeOf(v)
	if rt.Kind() != reflect.Struct {
		return nil, fmt.Errorf("given interface is not a struct")
	}

	lookup := make(map[string]reflect.Kind)

	for i := 0; i < rt.NumField(); i++ {
		field := rt.Field(i)

		name := strings.Split(field.Tag.Get("json"), ",")[0]
		value := field.Type.Kind()

		if field.Type.Kind() == reflect.Struct {
			value = reflect.Map
		}

		lookup[name] = value
	}

	return lookup, nil
}