rest.go 687 B

123456789101112131415161718192021222324252627282930313233
  1. package rest
  2. import (
  3. "context"
  4. "git.nspix.com/golang/micro/gateway/http"
  5. "git.nspix.com/golang/rest/crud"
  6. "git.nspix.com/golang/rest/orm/schema"
  7. "gorm.io/gorm"
  8. "sync"
  9. )
  10. var (
  11. once sync.Once
  12. )
  13. func Initialize(hs *http.Server, db *gorm.DB) {
  14. var err error
  15. once.Do(func() {
  16. if err = schema.Initialize(context.Background(), db, hs); err != nil {
  17. return
  18. }
  19. crud.Default.SetDB(db)
  20. crud.Default.SetHttpServer(hs)
  21. })
  22. }
  23. //register model instance
  24. func RegisterModel(module string, value interface{}, opts ...crud.Option) (err error) {
  25. if err = schema.Migrate(module, crud.Default.GetDB(), value); err == nil {
  26. crud.Default.Register(module, value, opts...)
  27. }
  28. return
  29. }