instance.go 992 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package rest
  2. import (
  3. "context"
  4. "errors"
  5. "git.nspix.com/golang/micro/gateway/http"
  6. "gorm.io/gorm"
  7. )
  8. var (
  9. std *CRUD
  10. )
  11. var (
  12. ErrUninitializedComponent = errors.New("uninitialized component")
  13. )
  14. func Init(dialer gorm.Dialector) (err error) {
  15. std, err = New(dialer)
  16. return
  17. }
  18. func Instance() *CRUD {
  19. return std
  20. }
  21. func DB() (db *gorm.DB, err error) {
  22. if std == nil {
  23. return nil, ErrUninitializedComponent
  24. }
  25. return std.db, nil
  26. }
  27. func Attach(ctx context.Context, model Model, cbs ...Option) (err error) {
  28. if std == nil {
  29. return ErrUninitializedComponent
  30. }
  31. return std.Attach(ctx, model, cbs...)
  32. }
  33. func GetSchemas(ctx context.Context, model Model) ([]*Schema, error) {
  34. if std == nil {
  35. return nil, ErrUninitializedComponent
  36. }
  37. return std.GetSchemas(ctx, DefaultNamespace, model.ModuleName(), model.TableName())
  38. }
  39. func Router(hs *http.Server, ms ...http.Middleware) (err error) {
  40. if std == nil {
  41. return ErrUninitializedComponent
  42. }
  43. std.api.Router(hs, ms...)
  44. return
  45. }