I'm trying to create a validation using the server error response, but I'm unable to pass an error object to my ember properly. Let's say I have a login page, when the user enter's an incorrect email/password, or the user the data that the user requested doesn't exist I want my server to return those error messages. But I am unable to do so, Here's what I have so far.
//Here's my controller
public class LoginController : ApiController
[HttpPost]
public object Login(Model.ViewModel.Login _cred)
{
var user = userAccountService.FindUser(_cred.UserName, _cred.Password);
_cred.Password = "";
if (user != null)
{
string baseAddress = "http://localhost:34914";
using (var client = new HttpClient())
{
var form = new Dictionary<string, string>
{
{"grant_type", "password"},
{"username", user.Username},
{"password", user.Password},
};
var tokenResponse = client.PostAsync(baseAddress + "/token", new FormUrlEncodedContent(form)).Result;
var token = tokenResponse.Content.ReadAsStringAsync().Result; //tokenResponse.Content.ReadAsAsync<Token>;
Model.ViewModel.Token returnToken = JsonConvert.DeserializeObject<Model.ViewModel.Token>(token);
_cred.AccessToken = returnToken.Access_Token;
return _cred;
}
}
else
{
var error = new Utility.JSONAPI.Error.JSONAPIError();
error.Errors.Add(new Utility.JSONAPI.Error.ErrorObject()
{
Id = 1,
Title = "Unauthorized",
Detail = "Invalid username and password"
});
return Request.CreateResponse((HttpStatusCode)422, error);// (HttpStatusCode.InternalServerError, error);
}
}
}
//JSONAPI Class
public class JSONAPIError
{
private List<ErrorObject> m_errors;
public List<ErrorObject> Errors
{
get
{
if (m_errors == null) m_errors = new List<ErrorObject>();
return m_errors;
}
}
}
public class ErrorObject
{
public int Id { get; set; }
public ErrorLinksObject Links { get; set; }
public string Status { get; set; }
public string Code { get; set; }
public string Title { get; set; }
public string Detail { get; set; }
public SourceObject Source { get; set; }
public object Meta { get; set; }
}
public class ErrorLinksObject
{
public ErrorLinkObject About { get; set; }
}
public class ErrorLinkObject
{
public string Href { get; set; }
public object Meta { get; set; }
}
public class SourceObject
{
public string Pointer { get; set; }
public string Parameter { get; set; }
}
Give me some light in here.
Aucun commentaire:
Enregistrer un commentaire