account.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package sqlstore
  2. import (
  3. "time"
  4. "github.com/go-xorm/xorm"
  5. "github.com/torkelo/grafana-pro/pkg/bus"
  6. m "github.com/torkelo/grafana-pro/pkg/models"
  7. )
  8. func init() {
  9. bus.AddHandler("sql", GetAccount)
  10. bus.AddHandler("sql", CreateAccount)
  11. bus.AddHandler("sql", SetUsingAccount)
  12. bus.AddHandler("sql", UpdateAccount)
  13. }
  14. func GetAccount(query *m.GetAccountByIdQuery) error {
  15. var account m.Account
  16. exists, err := x.Id(query.Id).Get(&account)
  17. if err != nil {
  18. return err
  19. }
  20. if !exists {
  21. return m.ErrAccountNotFound
  22. }
  23. query.Result = &account
  24. return nil
  25. }
  26. func CreateAccount(cmd *m.CreateAccountCommand) error {
  27. return inTransaction(func(sess *xorm.Session) error {
  28. account := m.Account{
  29. Name: cmd.Name,
  30. Created: time.Now(),
  31. Updated: time.Now(),
  32. }
  33. if _, err := sess.Insert(&account); err != nil {
  34. return err
  35. }
  36. // create inital admin account user
  37. user := m.AccountUser{
  38. AccountId: account.Id,
  39. UserId: cmd.UserId,
  40. Role: m.ROLE_ADMIN,
  41. Created: time.Now(),
  42. Updated: time.Now(),
  43. }
  44. _, err := sess.Insert(&user)
  45. cmd.Result = account
  46. return err
  47. })
  48. }
  49. func UpdateAccount(cmd *m.UpdateAccountCommand) error {
  50. return inTransaction(func(sess *xorm.Session) error {
  51. account := m.Account{
  52. Name: cmd.Name,
  53. Updated: time.Now(),
  54. }
  55. _, err := sess.Id(cmd.AccountId).Update(&account)
  56. return err
  57. })
  58. }