database.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package database
  2. import (
  3. _ "embed"
  4. _ "github.com/lib/pq"
  5. _ "github.com/mattn/go-sqlite3"
  6. "maunium.net/go/mautrix/util/dbutil"
  7. "go.mau.fi/mautrix-discord/database/upgrades"
  8. )
  9. type Database struct {
  10. *dbutil.Database
  11. User *UserQuery
  12. Portal *PortalQuery
  13. Puppet *PuppetQuery
  14. Message *MessageQuery
  15. Thread *ThreadQuery
  16. Reaction *ReactionQuery
  17. Emoji *EmojiQuery
  18. Guild *GuildQuery
  19. }
  20. func New(baseDB *dbutil.Database) *Database {
  21. db := &Database{Database: baseDB}
  22. db.UpgradeTable = upgrades.Table
  23. db.User = &UserQuery{
  24. db: db,
  25. log: db.Log.Sub("User"),
  26. }
  27. db.Portal = &PortalQuery{
  28. db: db,
  29. log: db.Log.Sub("Portal"),
  30. }
  31. db.Puppet = &PuppetQuery{
  32. db: db,
  33. log: db.Log.Sub("Puppet"),
  34. }
  35. db.Message = &MessageQuery{
  36. db: db,
  37. log: db.Log.Sub("Message"),
  38. }
  39. db.Thread = &ThreadQuery{
  40. db: db,
  41. log: db.Log.Sub("Thread"),
  42. }
  43. db.Reaction = &ReactionQuery{
  44. db: db,
  45. log: db.Log.Sub("Reaction"),
  46. }
  47. db.Emoji = &EmojiQuery{
  48. db: db,
  49. log: db.Log.Sub("Emoji"),
  50. }
  51. db.Guild = &GuildQuery{
  52. db: db,
  53. log: db.Log.Sub("Guild"),
  54. }
  55. return db
  56. }
  57. func strPtr(val string) *string {
  58. if val == "" {
  59. return nil
  60. }
  61. return &val
  62. }