func GetUser(args map[string]interface{}) User {
var keys []string
var values []interface{}
for k, v := range args {
keys = append(keys, fmt.Sprintf("%s = ?", k))
values = append(values, v)
}
cond := strings.Join(keys, " AND ")
item := User{}
err := db.QueryRow("SELECT uuid, name FROM users WHERE "+cond, values...).Scan(&item.Uuid, &item.Name)
checkError(err)
return item
}

func GetUserById(id int) User {
var array map[string]interface{} = make(map[string]interface{})
array["id"] = id
return GetUser(array)
}

func GetUserByOAuth(uid string, loginType int) User {
var array map[string]interface{} = make(map[string]interface{})
array["uid"] = uid
array["login_type"] = loginType
return GetUser(array)
}




GetUserById나 GetUserByOAuth를 호출하면


재사용하려고 만든 GetUser 함수를 호출해서 SQL을 실행하도록 함


그리고 User struct를 반환하게 되는데....


이거보다 더 간편하게 짤 방법 있을까