@@ -4,39 +4,72 @@ import { ITodo, TodoSchema } from '../models/todo';
4
4
const uri = process . env . MONGO_URI ?? '' ;
5
5
6
6
async function connectDB ( ) {
7
- try {
8
- await mongoose . connect ( uri ) ;
9
- console . log ( 'MongoDB connected with Mongoose' ) ;
10
- } catch ( error ) {
11
- console . error ( 'Error connecting to MongoDB:' , error ) ;
7
+ try {
8
+ await mongoose . connect ( uri ) ;
9
+ console . log ( 'MongoDB connected with Mongoose' ) ;
10
+ } catch ( error ) {
11
+ console . error ( 'Error connecting to MongoDB:' , error ) ;
12
+ }
12
13
}
13
- }
14
14
15
15
async function getTodos ( ) {
16
- const todos = await TodoSchema . find ( ) ;
17
- return todos ;
16
+ try {
17
+ const todos = await TodoSchema . find ( ) ;
18
+ return todos ;
19
+ } catch ( error ) {
20
+ console . error ( 'Error fetching todos:' , error ) ;
21
+ throw error ;
22
+ }
23
+ }
24
+
25
+ async function getTodo ( id : string ) {
26
+ try {
27
+ const todo = await TodoSchema . findById ( id ) ;
28
+ if ( ! todo ) {
29
+ throw new Error ( 'Todo not found' ) ;
30
+ }
31
+ return todo ;
32
+ } catch ( error ) {
33
+ console . error ( 'Error fetching todo:' , error ) ;
34
+ throw error ;
35
+ }
18
36
}
19
37
20
38
async function addTodo ( todo : ITodo ) {
21
- const newTodo = new TodoSchema ( todo ) ;
22
- await newTodo . save ( ) ;
23
- return newTodo ;
39
+ try {
40
+ const newTodo = new TodoSchema ( todo ) ;
41
+ await newTodo . save ( ) ;
42
+ return newTodo ;
43
+ } catch ( error ) {
44
+ console . error ( 'Error creating todo:' , error ) ;
45
+ throw error ;
46
+ }
24
47
}
25
48
26
49
async function updateTodo ( id : string , updateData : Partial < ITodo > ) {
27
- const updatedTodo = await TodoSchema . findByIdAndUpdate ( id , updateData ) ;
28
- if ( ! updatedTodo ) {
29
- throw new Error ( 'Todo not found' ) ;
30
- }
31
- return updatedTodo ;
50
+ try {
51
+ const updatedTodo = await TodoSchema . findByIdAndUpdate ( id , updateData , { new : true } ) ;
52
+ if ( ! updatedTodo ) {
53
+ throw new Error ( 'Todo not found' ) ;
54
+ }
55
+ return updatedTodo ;
56
+ } catch ( error ) {
57
+ console . error ( 'Error updating todo:' , error ) ;
58
+ throw error ;
59
+ }
32
60
}
33
61
34
62
async function deleteTodo ( id : string ) {
35
- const deletedTodo = await TodoSchema . findByIdAndDelete ( id ) ;
36
- if ( ! deletedTodo ) {
37
- throw new Error ( 'Todo not found' ) ;
38
- }
39
- return 'Todo deleted successfully' ;
63
+ try {
64
+ const deletedTodo = await TodoSchema . findByIdAndDelete ( id ) ;
65
+ if ( ! deletedTodo ) {
66
+ throw new Error ( 'Todo not found' ) ;
67
+ }
68
+ return 'Todo deleted successfully' ;
69
+ } catch ( error ) {
70
+ console . error ( 'Error deleting todo:' , error ) ;
71
+ throw error ;
72
+ }
40
73
}
41
74
42
- export { connectDB , getTodos , addTodo , updateTodo , deleteTodo } ;
75
+ export { connectDB , getTodos , getTodo , addTodo , updateTodo , deleteTodo } ;
0 commit comments