stufflog graphql server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
675 B

  1. package database
  2. import (
  3. "errors"
  4. "git.aiterp.net/stufflog/server/database/drivers/mysqldriver"
  5. "git.aiterp.net/stufflog/server/database/repositories"
  6. )
  7. var ErrDriverNotSupported = errors.New("driver not found or supported")
  8. type Database interface {
  9. Issues() repositories.IssueRepository
  10. Items() repositories.ItemRepository
  11. Projects() repositories.ProjectRepository
  12. Session() repositories.SessionRepository
  13. Users() repositories.UserRepository
  14. // Migrate the database.
  15. Migrate() error
  16. }
  17. func Open(driver, connect string) (Database, error) {
  18. switch driver {
  19. case "mysql":
  20. return mysqldriver.Open(connect)
  21. default:
  22. return nil, ErrDriverNotSupported
  23. }
  24. }