Refactoring get account by id and by login to queries

This commit is contained in:
Torkel Ödegaard
2014-12-19 13:40:02 +01:00
parent 5dcf6ff2d3
commit 22bf20a135
8 changed files with 58 additions and 33 deletions
+4 -1
View File
@@ -27,12 +27,15 @@ func AddCollaborator(c *middleware.Context) {
return
}
accountToAdd, err := m.GetAccountByLogin(cmd.Email)
userQuery := m.GetAccountByLoginQuery{Login: cmd.Email}
err := bus.Dispatch(&userQuery)
if err != nil {
c.JsonApiErr(404, "Collaborator not found", nil)
return
}
accountToAdd := userQuery.Result
if accountToAdd.Id == c.UserAccount.Id {
c.JsonApiErr(400, "Cannot add yourself as collaborator", nil)
return
+10 -5
View File
@@ -2,9 +2,10 @@ package api
import (
"github.com/torkelo/grafana-pro/pkg/api/dtos"
"github.com/torkelo/grafana-pro/pkg/bus"
"github.com/torkelo/grafana-pro/pkg/log"
"github.com/torkelo/grafana-pro/pkg/middleware"
"github.com/torkelo/grafana-pro/pkg/models"
m "github.com/torkelo/grafana-pro/pkg/models"
"github.com/torkelo/grafana-pro/pkg/utils"
)
@@ -22,14 +23,18 @@ func LoginPost(c *middleware.Context) {
return
}
account, err := models.GetAccountByLogin(loginModel.Email)
userQuery := m.GetAccountByLoginQuery{Login: loginModel.Email}
err := bus.Dispatch(&userQuery)
if err != nil {
c.JSON(401, utils.DynMap{"status": "unauthorized"})
c.JsonApiErr(401, "Invalid username or password", err)
return
}
account := userQuery.Result
if loginModel.Password != account.Password {
c.JSON(401, utils.DynMap{"status": "unauthorized"})
c.JsonApiErr(401, "Invalid username or password", err)
return
}
@@ -42,7 +47,7 @@ func LoginPost(c *middleware.Context) {
c.JSON(200, resp)
}
func loginUserWithAccount(account *models.Account, c *middleware.Context) {
func loginUserWithAccount(account *m.Account, c *middleware.Context) {
if account == nil {
log.Error(3, "Account login with nil account")
}
+4 -3
View File
@@ -49,7 +49,8 @@ func OAuthLogin(ctx *middleware.Context) {
log.Info("login.OAuthLogin(social login): %s", userInfo)
account, err := m.GetAccountByLogin(userInfo.Email)
userQuery := m.GetAccountByLoginQuery{Login: userInfo.Email}
err = bus.Dispatch(&userQuery)
// create account if missing
if err == m.ErrAccountNotFound {
@@ -65,13 +66,13 @@ func OAuthLogin(ctx *middleware.Context) {
return
}
account = &cmd.Result
userQuery.Result = &cmd.Result
} else if err != nil {
ctx.Handle(500, "Unexpected error", err)
}
// login
loginUserWithAccount(account, ctx)
loginUserWithAccount(userQuery.Result, ctx)
ctx.Redirect("/")
}