1
1
import { initializeApp } from "firebase/app" ;
2
- import { doc , getDoc , getFirestore , setDoc } from "firebase/firestore" ;
2
+ import { doc , getDoc , getFirestore , setDoc , updateDoc } from "firebase/firestore" ;
3
3
import { firebaseConfig } from "../firebase/firebase.config" ;
4
4
5
5
initializeApp ( firebaseConfig ) ;
@@ -18,11 +18,17 @@ export async function createUser(email: string): Promise<User> {
18
18
try {
19
19
await setDoc ( doc ( db , "users" , email ) , {
20
20
email : email ,
21
+ name : "-" ,
22
+ year : "-" ,
23
+ major : "-" ,
21
24
role : "user" ,
22
25
completed : 0 ,
23
26
} ) ;
24
27
return Promise . resolve ( {
25
28
email : email ,
29
+ name : "-" ,
30
+ year : "-" ,
31
+ major : "-" ,
26
32
role : "user" ,
27
33
completed : 0 ,
28
34
} ) ;
@@ -50,3 +56,29 @@ export async function getUser(email: string): Promise<User> {
50
56
return Promise . reject ( error ) ;
51
57
}
52
58
}
59
+
60
+ export async function updateUser ( email : string , params : any ) : Promise < User > {
61
+ try {
62
+ const document = doc ( db , "users" , email ) ;
63
+ await updateDoc ( document , {
64
+ name : params . name ,
65
+ year : params . year ,
66
+ major : params . major
67
+ } )
68
+ const data = await getDoc ( doc ( db , "users" , email ) ) ;
69
+ const user = data . data ( ) ;
70
+ if ( user ) {
71
+ return Promise . resolve ( {
72
+ email : email ,
73
+ name : user . name ? user . name : undefined ,
74
+ year : user . year ? user . year : undefined ,
75
+ major : user . major ? user . major : undefined ,
76
+ role : user . role ,
77
+ completed : user . completed ,
78
+ } ) ;
79
+ }
80
+ return Promise . reject ( "no such user" ) ;
81
+ } catch ( error ) {
82
+ return Promise . reject ( error ) ;
83
+ }
84
+ }
0 commit comments