Chore: Moves common and response into separate packages (#30298)
* Chore: moves common and response into separate packages * Chore: moves common and response into separate packages * Update pkg/api/utils/common.go Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com> * Chore: changes after PR comments * Chore: move wrap to routing package * Chore: move functions in common to response package * Chore: move functions in common to response package * Chore: formats imports Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
co-authored by
Arve Knudsen
parent
a94c256516
commit
3d41267fc4
+22
-21
@@ -6,6 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/api/dtos"
|
||||
"github.com/grafana/grafana/pkg/api/response"
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
@@ -13,48 +14,48 @@ import (
|
||||
)
|
||||
|
||||
// GET /api/user/auth-tokens
|
||||
func (hs *HTTPServer) GetUserAuthTokens(c *models.ReqContext) Response {
|
||||
func (hs *HTTPServer) GetUserAuthTokens(c *models.ReqContext) response.Response {
|
||||
return hs.getUserAuthTokensInternal(c, c.UserId)
|
||||
}
|
||||
|
||||
// POST /api/user/revoke-auth-token
|
||||
func (hs *HTTPServer) RevokeUserAuthToken(c *models.ReqContext, cmd models.RevokeAuthTokenCmd) Response {
|
||||
func (hs *HTTPServer) RevokeUserAuthToken(c *models.ReqContext, cmd models.RevokeAuthTokenCmd) response.Response {
|
||||
return hs.revokeUserAuthTokenInternal(c, c.UserId, cmd)
|
||||
}
|
||||
|
||||
func (hs *HTTPServer) logoutUserFromAllDevicesInternal(ctx context.Context, userID int64) Response {
|
||||
func (hs *HTTPServer) logoutUserFromAllDevicesInternal(ctx context.Context, userID int64) response.Response {
|
||||
userQuery := models.GetUserByIdQuery{Id: userID}
|
||||
|
||||
if err := bus.Dispatch(&userQuery); err != nil {
|
||||
if errors.Is(err, models.ErrUserNotFound) {
|
||||
return Error(404, "User not found", err)
|
||||
return response.Error(404, "User not found", err)
|
||||
}
|
||||
return Error(500, "Could not read user from database", err)
|
||||
return response.Error(500, "Could not read user from database", err)
|
||||
}
|
||||
|
||||
err := hs.AuthTokenService.RevokeAllUserTokens(ctx, userID)
|
||||
if err != nil {
|
||||
return Error(500, "Failed to logout user", err)
|
||||
return response.Error(500, "Failed to logout user", err)
|
||||
}
|
||||
|
||||
return JSON(200, util.DynMap{
|
||||
return response.JSON(200, util.DynMap{
|
||||
"message": "User logged out",
|
||||
})
|
||||
}
|
||||
|
||||
func (hs *HTTPServer) getUserAuthTokensInternal(c *models.ReqContext, userID int64) Response {
|
||||
func (hs *HTTPServer) getUserAuthTokensInternal(c *models.ReqContext, userID int64) response.Response {
|
||||
userQuery := models.GetUserByIdQuery{Id: userID}
|
||||
|
||||
if err := bus.Dispatch(&userQuery); err != nil {
|
||||
if errors.Is(err, models.ErrUserNotFound) {
|
||||
return Error(404, "User not found", err)
|
||||
return response.Error(404, "User not found", err)
|
||||
}
|
||||
return Error(500, "Failed to get user", err)
|
||||
return response.Error(500, "Failed to get user", err)
|
||||
}
|
||||
|
||||
tokens, err := hs.AuthTokenService.GetUserTokens(c.Req.Context(), userID)
|
||||
if err != nil {
|
||||
return Error(500, "Failed to get user auth tokens", err)
|
||||
return response.Error(500, "Failed to get user auth tokens", err)
|
||||
}
|
||||
|
||||
result := []*dtos.UserToken{}
|
||||
@@ -106,40 +107,40 @@ func (hs *HTTPServer) getUserAuthTokensInternal(c *models.ReqContext, userID int
|
||||
})
|
||||
}
|
||||
|
||||
return JSON(200, result)
|
||||
return response.JSON(200, result)
|
||||
}
|
||||
|
||||
func (hs *HTTPServer) revokeUserAuthTokenInternal(c *models.ReqContext, userID int64, cmd models.RevokeAuthTokenCmd) Response {
|
||||
func (hs *HTTPServer) revokeUserAuthTokenInternal(c *models.ReqContext, userID int64, cmd models.RevokeAuthTokenCmd) response.Response {
|
||||
userQuery := models.GetUserByIdQuery{Id: userID}
|
||||
|
||||
if err := bus.Dispatch(&userQuery); err != nil {
|
||||
if errors.Is(err, models.ErrUserNotFound) {
|
||||
return Error(404, "User not found", err)
|
||||
return response.Error(404, "User not found", err)
|
||||
}
|
||||
return Error(500, "Failed to get user", err)
|
||||
return response.Error(500, "Failed to get user", err)
|
||||
}
|
||||
|
||||
token, err := hs.AuthTokenService.GetUserToken(c.Req.Context(), userID, cmd.AuthTokenId)
|
||||
if err != nil {
|
||||
if errors.Is(err, models.ErrUserTokenNotFound) {
|
||||
return Error(404, "User auth token not found", err)
|
||||
return response.Error(404, "User auth token not found", err)
|
||||
}
|
||||
return Error(500, "Failed to get user auth token", err)
|
||||
return response.Error(500, "Failed to get user auth token", err)
|
||||
}
|
||||
|
||||
if c.UserToken != nil && c.UserToken.Id == token.Id {
|
||||
return Error(400, "Cannot revoke active user auth token", nil)
|
||||
return response.Error(400, "Cannot revoke active user auth token", nil)
|
||||
}
|
||||
|
||||
err = hs.AuthTokenService.RevokeToken(c.Req.Context(), token)
|
||||
if err != nil {
|
||||
if errors.Is(err, models.ErrUserTokenNotFound) {
|
||||
return Error(404, "User auth token not found", err)
|
||||
return response.Error(404, "User auth token not found", err)
|
||||
}
|
||||
return Error(500, "Failed to revoke user auth token", err)
|
||||
return response.Error(500, "Failed to revoke user auth token", err)
|
||||
}
|
||||
|
||||
return JSON(200, util.DynMap{
|
||||
return response.JSON(200, util.DynMap{
|
||||
"message": "User auth token revoked",
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user