Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "errors"
  5. "fmt"
  6. "github.com/jmoiron/sqlx"
  7. _ "github.com/lib/pq"
  8. "github.com/ompluscator/dynamic-struct"
  9. "log"
  10. )
  11.  
  12. var list map[string]map[string]interface{}
  13.  
  14. func MakeStruct(name string) (error, interface{}) {
  15. structure, ok := list[name]
  16.  
  17. if !ok {
  18. return errors.New("Нет такой структуры"), nil
  19. }
  20.  
  21. instance := dynamicstruct.NewStruct()
  22. for key, value := range structure {
  23. instance.AddField(key, value, "")
  24. }
  25.  
  26. return nil, instance.Build().New()
  27. }
  28.  
  29. func main() {
  30. db, err := sqlx.Connect("postgres", "user=postgres dbname=project sslmode=disable")
  31. if err != nil {
  32. log.Fatalln(err)
  33. }
  34.  
  35. list = make(map[string]map[string]interface{})
  36.  
  37. list = map[string]map[string]interface{}{
  38. "Test": map[string]interface{}{
  39. "Id" : 0,
  40. "Name" : "",
  41. "Number" : 0,
  42. },
  43. "Test1": map[string]interface{}{
  44. "Id" : 0,
  45. "Address" : "",
  46. "Phone" : "",
  47. },
  48. }
  49.  
  50. err, test := MakeStruct("Test")
  51.  
  52. if err != nil {
  53. panic(err)
  54. }
  55.  
  56. stmt, err := db.Preparex(`SELECT * FROM test WHERE id=$1`)
  57. //var p Test1
  58. err = stmt.Get(test, 1)
  59. fmt.Println(test, err)
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement