auth
auth/access.go
Handle remaining access errors. Fill out remaining TODOs about returning errors when trying to obtain an access token.
1.1 --- a/access.go Wed Aug 13 06:07:37 2014 -0400 1.2 +++ b/access.go Wed Aug 13 06:46:13 2014 -0400 1.3 @@ -90,16 +90,20 @@ 1.4 if err != nil { 1.5 if err == ClientNotFoundError || err == InvalidClientError { 1.6 ctx.RenderJSONError(w, ErrorInvalidClient, "Invalid client auth.", ctx.Config.DocumentationDomain) 1.7 - } else { 1.8 - ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.9 + return 1.10 } 1.11 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.12 return 1.13 } 1.14 1.15 // must be a valid authorization code 1.16 authData, err := ctx.Tokens.GetAuthorization(code) 1.17 if err != nil { 1.18 - // TODO: return error 1.19 + if err == AuthorizationNotFoundError { 1.20 + ctx.RenderJSONError(w, ErrorInvalidGrant, "Invalid authorization.", ctx.Config.DocumentationDomain) 1.21 + return 1.22 + } 1.23 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.24 return 1.25 } 1.26 if authData.RedirectURI == "" { 1.27 @@ -170,16 +174,20 @@ 1.28 if err != nil { 1.29 if err == ClientNotFoundError || err == InvalidClientError { 1.30 ctx.RenderJSONError(w, ErrorInvalidClient, "Invalid client auth.", ctx.Config.DocumentationDomain) 1.31 - } else { 1.32 - ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.33 + return 1.34 } 1.35 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.36 return 1.37 } 1.38 1.39 // must be a valid refresh code 1.40 refreshData, err := ctx.Tokens.GetRefresh(code) 1.41 if err != nil { 1.42 - // TODO: return error 1.43 + if err == TokenNotFoundError { 1.44 + ctx.RenderJSONError(w, ErrorInvalidGrant, "Refresh token not valid.", ctx.Config.DocumentationDomain) 1.45 + return 1.46 + } 1.47 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.48 return 1.49 } 1.50 1.51 @@ -232,15 +240,19 @@ 1.52 if err != nil { 1.53 if err == ClientNotFoundError || err == InvalidClientError { 1.54 ctx.RenderJSONError(w, ErrorInvalidClient, "Invalid client auth.", ctx.Config.DocumentationDomain) 1.55 - } else { 1.56 - ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.57 + return 1.58 } 1.59 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.60 return 1.61 } 1.62 1.63 _, err = ctx.Profiles.GetProfile(username, password) 1.64 if err != nil { 1.65 - // TODO: return error 1.66 + if err == ProfileNotFoundError { 1.67 + ctx.RenderJSONError(w, ErrorInvalidGrant, "Invalid credentials.", ctx.Config.DocumentationDomain) 1.68 + return 1.69 + } 1.70 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.71 return 1.72 } 1.73 1.74 @@ -274,9 +286,9 @@ 1.75 if err != nil { 1.76 if err == ClientNotFoundError || err == InvalidClientError { 1.77 ctx.RenderJSONError(w, ErrorInvalidClient, "Invalid client auth.", ctx.Config.DocumentationDomain) 1.78 - } else { 1.79 - ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.80 + return 1.81 } 1.82 + ctx.RenderJSONError(w, ErrorServerError, "Internal server error.", ctx.Config.DocumentationDomain) 1.83 return 1.84 } 1.85