Skip to content

Commit ef0991a

Browse files
refactor: add handleError-function to useTodoAPI
1 parent e0a599f commit ef0991a

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

web/src/hooks/useTodoAPI.tsx

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
import { useCallback } from 'react'
22
import { type AddTodoResponse, ApiError, type ErrorResponse, TodoService } from '../api/generated'
33

4+
function handleError(error: unknown): void {
5+
if (error instanceof ApiError) {
6+
console.error((error.body as ErrorResponse).message)
7+
}
8+
throw error
9+
}
10+
411
export function useTodoAPI() {
512
const addTodoItem = useCallback(async (title: string) => {
613
try {
714
return await TodoService.create({ title })
815
} catch (error) {
9-
if (error instanceof ApiError) {
10-
console.error((error.body as ErrorResponse).message)
11-
}
12-
throw error
16+
handleError(error)
1317
}
1418
}, [])
1519

1620
const getAllTodoItems = useCallback(async () => {
1721
try {
1822
return await TodoService.getAll()
1923
} catch (error) {
20-
if (error instanceof ApiError) {
21-
console.error((error.body as ErrorResponse).message)
22-
}
23-
throw error
24+
handleError(error)
2425
}
2526
}, [])
2627

@@ -31,21 +32,15 @@ export function useTodoAPI() {
3132
title: todo.title,
3233
})
3334
} catch (error) {
34-
if (error instanceof ApiError) {
35-
console.error((error.body as ErrorResponse).message)
36-
}
37-
throw error
35+
handleError(error)
3836
}
3937
}, [])
4038

4139
const removeTodoItem = useCallback(async (todo: AddTodoResponse) => {
4240
try {
4341
return await TodoService.deleteById(todo.id)
4442
} catch (error) {
45-
if (error instanceof ApiError) {
46-
console.error((error.body as ErrorResponse).message)
47-
}
48-
throw error
43+
handleError(error)
4944
}
5045
}, [])
5146

0 commit comments

Comments
 (0)