refactored error handling

This commit is contained in:
marco committed 2026-08-31 13:54:35 +02:00
1 parent de94725885
commit ec91488f9a
2 files changed
+8 -12

No files matched your search

+3 -5
View File
@@ -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();
}
} }
+5 -7
View File
@@ -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;
} }