32 lines
747 B
Go
32 lines
747 B
Go
// Copyright 2018 The OpenPitrix Authors. All rights reserved.
|
|
// Use of this source code is governed by a Apache license
|
|
// that can be found in the LICENSE file.
|
|
|
|
package db
|
|
|
|
import (
|
|
"github.com/fatih/structs"
|
|
|
|
"openpitrix.io/openpitrix/pkg/util/stringutil"
|
|
)
|
|
|
|
func GetColumnsFromStruct(s interface{}) []string {
|
|
names := structs.Names(s)
|
|
for i, name := range names {
|
|
names[i] = stringutil.CamelCaseToUnderscore(name)
|
|
}
|
|
return names
|
|
}
|
|
|
|
func GetColumnsFromStructWithPrefix(prefix string, s interface{}) []string {
|
|
names := structs.Names(s)
|
|
for i, name := range names {
|
|
names[i] = WithPrefix(prefix, stringutil.CamelCaseToUnderscore(name))
|
|
}
|
|
return names
|
|
}
|
|
|
|
func WithPrefix(prefix, str string) string {
|
|
return prefix + "." + str
|
|
}
|