public HttpResponseMessage Create(Patron patron) { ApiResponse response = new ApiResponse(Request); try { var patronContext = new Database(); patronContext.Patrons.Add(patron); patronContext.SaveChanges(); response.data = response.DefaultSuccessResponse; return response.GenerateResponse(HttpStatusCode.Created); } catch(Exception e) { response.errors.Add(new InvalidPatron { source = e }); return response.GenerateResponse(HttpStatusCode.BadRequest); } }
public HttpResponseMessage CreateVolunteer([FromBody] Volunteer volunteer) { ApiResponse response = new ApiResponse(Request); try { volunteer.SecurePassword(); var volunteerContext = new Database(); volunteerContext.Volunteers.Add(volunteer); volunteerContext.SaveChanges(); response.data = response.DefaultSuccessResponse; return response.GenerateResponse(HttpStatusCode.Created); } catch (Exception e) { response.errors.Add(new InvalidVolunteer { source = e }); return response.GenerateResponse(HttpStatusCode.BadRequest); } }
public HttpResponseMessage Login([FromBody] Volunteer volunteer) { ApiResponse response = new ApiResponse(Request); var volunteerContext = new Database(); var foundVolunteer = volunteerContext.Volunteers.Find(volunteer.Username); if (foundVolunteer == null) { response.errors.Add(new InvalidUsernameOrPassword()); return response.GenerateResponse(HttpStatusCode.BadRequest); } var passwordResult = foundVolunteer.VerifyPassword(volunteer.Password); if(passwordResult == PasswordVerificationResult.SuccessRehashNeeded) { foundVolunteer.Password = PasswordHasher.EncryptPassword(volunteer.Password); passwordResult = PasswordVerificationResult.Success; } if (passwordResult == PasswordVerificationResult.Success) { var authTokenID = Guid.NewGuid(); var authToken = new AuthenticationToken { Token = authTokenID, AssociatedVolunteer = foundVolunteer }; var authTokenContext = volunteerContext; authTokenContext.AuthenticationTokens.Add(authToken); authTokenContext.SaveChanges(); return response.GenerateResponse(HttpStatusCode.OK, new Dictionary<string, string> { {"authToken", authTokenID.ToString()} }); } else { response.errors.Add(new InvalidUsernameOrPassword()); return response.GenerateResponse(HttpStatusCode.BadRequest); } }