public IActionResult Create([FromBody] JObject appUser) { using (var context = new RevojiDataContext()) { try { DBAppUser dbAppUser = new DBAppUser(appUser); if (context.AppUsers.Any(user => user.Handle == dbAppUser.Handle)) { return(BadRequest("duplicate_user_handle")); } if (context.AppUsers.Any(user => user.Email == dbAppUser.Email)) { return(BadRequest("duplicate_user_email")); } if (string.IsNullOrEmpty(dbAppUser.Password))// TODO: handle things like #chars, capital/lower case, symbols? { return(BadRequest("password_not_set")); } context.Add(dbAppUser); context.Save(); return(Ok(new AppUserDetail(dbAppUser))); } catch (DbUpdateException e) { return(BadRequest("invalid_error")); //TODO: should be an object } } }
public IActionResult uploadProfilePicture([FromForm] IFormFile file) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(ApiUser.ID); if (dbAppUser == null) { return(new NotFoundResult()); } var result = AWSFileUploader.UploadObject(file, "profile_pictures").Result; if (!result.Success) { return(new BadRequestResult()); } var content = JsonConvert.DeserializeObject <AppUserContent>(dbAppUser.Content); content.Avatar = result.Url; dbAppUser.Content = JsonConvert.SerializeObject(content); context.Save(); return(Ok(result)); } }
public AppUser(DBAppUser dBAppUser) : base(dBAppUser) { FirstName = dBAppUser.FirstName; LastName = dBAppUser.LastName; City = dBAppUser.City; AdministrativeArea = dBAppUser.AdministrativeArea; Country = dBAppUser.Country; }
public AppUserDetail(DBAppUser dbAppUser) : base(dbAppUser) { DateOfBirth = dbAppUser.DateOfBirth; Gender = dbAppUser.Gender; Religion = dbAppUser.Religion; Politics = dbAppUser.Politics; Education = dbAppUser.Education; Profession = dbAppUser.Profession; Interests = dbAppUser.Interests; Joined = dbAppUser.Joined; }
public override void UpdateDB(DBTable dbModel) { base.UpdateDB(dbModel); DBAppUser dBAppUser = dbModel as DBAppUser; dBAppUser.FirstName = FirstName; dBAppUser.LastName = LastName; dBAppUser.City = City; dBAppUser.AdministrativeArea = AdministrativeArea; dBAppUser.Country = Country; }
public IActionResult Get(string handle) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.AppUsers.FirstOrDefault(user => user.Handle == handle); if (dbAppUser == null) { return(new NotFoundResult()); } return(Ok(new AppUserDetail(dbAppUser))); } }
public IActionResult Get(int id) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(id); if (dbAppUser == null) { return(new NotFoundResult()); } return(Ok(new AppUserDetail(dbAppUser))); } }
public IActionResult GetPreferences(int id) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(id); if (dbAppUser == null || string.IsNullOrEmpty(dbAppUser.Preferences) || dbAppUser.Content == "{}") { return(Ok()); } return(Ok(JsonConvert.DeserializeObject <AppUserPreferences>(dbAppUser.Preferences))); } }
public IActionResult GetCounts(int id) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(id); if (dbAppUser == null) { return(new NotFoundResult()); } AppUserStats stats = new AppUserStats(id); return(Ok(stats)); } }
public override void UpdateDB(DBTable dbModel) { base.UpdateDB(dbModel); DBAppUser dBAppUser = dbModel as DBAppUser; dBAppUser.DateOfBirth = DateOfBirth; dBAppUser.Gender = Gender; dBAppUser.Religion = Religion; dBAppUser.Politics = Politics; dBAppUser.Education = Education; dBAppUser.Profession = Profession; dBAppUser.Interests = Interests; dBAppUser.Joined = Joined; }
public IActionResult SetSettings(int id, [FromBody] JObject appUserSettings) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(id); if (dbAppUser == null) { return(new NotFoundResult()); } dbAppUser.Settings = JsonConvert.SerializeObject(appUserSettings); context.Save(); return(Ok()); } }
public IActionResult Update(int id, [FromBody] JObject appUser) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(id); if (dbAppUser == null) { return(new NotFoundResult()); } dbAppUser.update(appUser); context.Save(); return(Ok(new AppUserDetail(dbAppUser))); } }
public IActionResult Delete() { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(ApiUser.ID); if (dbAppUser == null) { return(new NotFoundResult()); } context.Remove(dbAppUser); context.Save(); return(Ok()); } }
public IActionResult ChangeEmail(string email) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(ApiUser.ID); if (dbAppUser == null) { return(new NotFoundResult()); } //if (email is valid) //{ // return new BadRequestResult(); //} dbAppUser.Email = email; context.Save(); return(Ok()); } }
public IActionResult ChangePassword(string newPassword, string oldPassword) { using (var context = new RevojiDataContext()) { DBAppUser dbAppUser = context.Get <DBAppUser>(ApiUser.ID); if (dbAppUser == null) { return(new NotFoundResult()); } if (!dbAppUser.isPasswordCorrect(oldPassword)) { return(new UnprocessableEntityResult()); } dbAppUser.SetPassword(newPassword); context.Save(); return(Ok()); } }
Task IResourceOwnerPasswordValidator.ValidateAsync(ResourceOwnerPasswordValidationContext context) { using (var dbctx = new RevojiDataContext()) { if (context.UserName == null || context.Password == null) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidRequest, "missing_arguments_error"); return(Task.FromResult <object>(null)); } DBAppUser dbAppUser = dbctx.AppUsers.FirstOrDefault(au => au.Handle == context.UserName); if (dbAppUser == null || !dbAppUser.isPasswordCorrect(context.Password)) { context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "invalid_handle_password_error"); return(Task.FromResult <object>(null)); } var claim = new Claim(ClaimTypes.Name, dbAppUser.Handle); var claims = new List <Claim>(); claims.Add(claim); context.Result = new GrantValidationResult(dbAppUser.Handle, "access_token", claims); return(Task.FromResult <object>(null)); } }