refactored error handling
This commit is contained in:
1 parent
de94725885
commit
ec91488f9a
2 files changed
+8
-12
No files matched your search
@@ -20,7 +20,7 @@ public class PersonRepository(AppDbContext context) : IPersonRepository
|
|||||||
|
|
||||||
public async Task<Person> GetByUsernameAsync(string username)
|
public async Task<Person> GetByUsernameAsync(string username)
|
||||||
{
|
{
|
||||||
return await _context.Persons.FindAsync(username);
|
return await _context.Persons.FindAsync(username) ?? throw new KeyNotFoundException("User does not exist");
|
||||||
}
|
}
|
||||||
public async Task UpdateAsync(Person person)
|
public async Task UpdateAsync(Person person)
|
||||||
{
|
{
|
||||||
@@ -30,14 +30,12 @@ public class PersonRepository(AppDbContext context) : IPersonRepository
|
|||||||
|
|
||||||
public async Task DeleteAsync(string username)
|
public async Task DeleteAsync(string username)
|
||||||
{
|
{
|
||||||
Person person = await _context.Persons.FindAsync(username);
|
Person person = await _context.Persons.FindAsync(username) ?? throw new KeyNotFoundException("User does not exist");;
|
||||||
|
|
||||||
if (person != null)
|
|
||||||
{
|
|
||||||
_context.Persons.Remove(person);
|
_context.Persons.Remove(person);
|
||||||
|
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace api.Services
|
|||||||
|
|
||||||
public async Task<PersonDto> GetPersonByUsernameAsync(string username)
|
public async Task<PersonDto> GetPersonByUsernameAsync(string username)
|
||||||
{
|
{
|
||||||
Person person = await personExists(username);
|
Person person = await PersonExists(username);
|
||||||
|
|
||||||
return new PersonDto
|
return new PersonDto
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@ namespace api.Services
|
|||||||
public async Task UpdatePersonAsync(string username, PersonDto personDto)
|
public async Task UpdatePersonAsync(string username, PersonDto personDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
await personExists(username);
|
await PersonExists(username);
|
||||||
|
|
||||||
Person updatedPerson = Person.Create(username: username, realName: personDto.RealName, birthday: personDto.Birthday);
|
Person updatedPerson = Person.Create(username: username, realName: personDto.RealName, birthday: personDto.Birthday);
|
||||||
await _personRepository.UpdateAsync(updatedPerson);
|
await _personRepository.UpdateAsync(updatedPerson);
|
||||||
@@ -54,18 +54,16 @@ namespace api.Services
|
|||||||
|
|
||||||
public async Task DeletePersonAsync(string username)
|
public async Task DeletePersonAsync(string username)
|
||||||
{
|
{
|
||||||
await personExists(username);
|
await PersonExists(username);
|
||||||
|
|
||||||
await _personRepository.DeleteAsync(username);
|
await _personRepository.DeleteAsync(username);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Person> personExists(string username)
|
private async Task<Person> PersonExists(string username)
|
||||||
{
|
{
|
||||||
username = Person.NormalizeUsername(username);
|
username = Person.NormalizeUsername(username);
|
||||||
|
|
||||||
Person? person = await _personRepository.GetByUsernameAsync(username);
|
Person person = await _personRepository.GetByUsernameAsync(username);
|
||||||
|
|
||||||
if (person == null) throw new KeyNotFoundException($"Person '{username}' not found");
|
|
||||||
|
|
||||||
return person;
|
return person;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user