@@ -29,7 +29,7 @@ export class AuthService {
2929 private readonly jwtService : JwtService ,
3030 @InjectRepository ( Role )
3131 private readonly roleRepository : Repository < Role >
32- ) { }
32+ ) { }
3333
3434 /**
3535 * REGISTRATION OF A USER
@@ -43,80 +43,93 @@ export class AuthService {
4343 longitude
4444 } : any ) {
4545 if ( type == 'Admin' ) {
46- const user = new User ( )
47- user . name = name
48- user . email = email
49- user . password = this . jwtService . encodePassword ( password )
50- const registeredUser = await this . userRepository . save ( user )
51- return {
52- id : registeredUser . id ,
53- name : registeredUser . name ,
54- email : registeredUser . email ,
55- token : null ,
56- createdAt : registeredUser . createdAt ,
57- updatedAt : registeredUser . updatedAt
46+ if ( ! ( await this . checkUser ( email , type ) ) ) {
47+ const user = new User ( )
48+ user . name = name
49+ user . email = email
50+ user . password = this . jwtService . encodePassword ( password )
51+ console . log ( 'name,email' , user . name , user . email )
52+ const registeredUser = await this . userRepository . save ( user )
53+ return {
54+ id : registeredUser . id ,
55+ name : registeredUser . name ,
56+ email : registeredUser . email ,
57+ token : null ,
58+ createdAt : registeredUser . createdAt ,
59+ updatedAt : registeredUser . updatedAt
60+ }
5861 }
5962 } else if ( type == 'Institution' ) {
60- const user = new Institution ( )
61- user . name = name
62- user . email = email
63- user . password = this . jwtService . encodePassword ( password )
64- user . latitude = latitude
65- user . longitude = longitude
66-
67- const role = await this . roleRepository . findOne ( {
68- where : {
69- name : 'institution'
70- }
71- } )
72- user . roleId = role . id // default to institution
63+ if ( ! ( await this . checkUser ( email , type ) ) ) {
64+ const user = new Institution ( )
65+ user . name = name
66+ user . email = email
67+ user . password = this . jwtService . encodePassword ( password )
68+ user . latitude = latitude
69+ user . longitude = longitude
7370
74- const registeredUser = await this . institutionRepository . save ( user )
75- const wallet = await getWallet ( 'institution' , registeredUser . id )
76- await this . institutionRepository . update ( registeredUser . id , {
77- publicAddress : wallet . address ,
78- role : role
79- } )
80- return {
81- id : registeredUser . id ,
82- name : registeredUser . name ,
83- email : registeredUser . email ,
84- token : null ,
85- createdAt : registeredUser . createdAt ,
86- updatedAt : registeredUser . updatedAt
71+ const role = await this . roleRepository . findOne ( {
72+ where : {
73+ name : 'institution'
74+ }
75+ } )
76+ user . roleId = role . id // default to institution
77+
78+ const registeredUser = await this . institutionRepository . save (
79+ user
80+ )
81+ const wallet = await getWallet ( 'institution' , registeredUser . id )
82+ await this . institutionRepository . update ( registeredUser . id , {
83+ publicAddress : wallet . address ,
84+ role : role
85+ } )
86+ return {
87+ id : registeredUser . id ,
88+ name : registeredUser . name ,
89+ email : registeredUser . email ,
90+ token : null ,
91+ createdAt : registeredUser . createdAt ,
92+ updatedAt : registeredUser . updatedAt
93+ }
8794 }
8895 //no longer registering from the api
8996 } else if ( type == 'Learner' ) {
90- const user = new Learner ( )
91- user . name = name
92- user . email = email
93- // user.publicAddress = publicAddress
94- user . password = this . jwtService . encodePassword ( password )
95- user . latitude = latitude
96- user . longitude = longitude
97- const registeredUser = await this . learnerRepository . save ( user )
98- return {
99- id : registeredUser . id ,
100- name : registeredUser . name ,
101- email : registeredUser . email ,
102- token : null ,
103- createdAt : registeredUser . createdAt ,
104- updatedAt : registeredUser . updatedAt
97+ if ( ! ( await this . checkUser ( email , type ) ) ) {
98+ const user = new Learner ( )
99+ user . name = name
100+ user . email = email
101+ // user.publicAddress = publicAddress
102+ user . password = this . jwtService . encodePassword ( password )
103+ user . latitude = latitude
104+ user . longitude = longitude
105+ const registeredUser = await this . learnerRepository . save ( user )
106+ return {
107+ id : registeredUser . id ,
108+ name : registeredUser . name ,
109+ email : registeredUser . email ,
110+ token : null ,
111+ createdAt : registeredUser . createdAt ,
112+ updatedAt : registeredUser . updatedAt
113+ }
105114 }
106115 } else if ( type == 'Instructor' ) {
107- const user = new Instructor ( )
108- user . name = name
109- user . email = email
110- // user.publicAddress = publicAddress
111- user . password = this . jwtService . encodePassword ( password )
112- const registeredUser = await this . insturctorRepository . save ( user )
113- return {
114- id : registeredUser . id ,
115- name : registeredUser . name ,
116- email : registeredUser . email ,
117- token : null ,
118- createdAt : registeredUser . createdAt ,
119- updatedAt : registeredUser . updatedAt
116+ if ( ! ( await this . checkUser ( email , type ) ) ) {
117+ const user = new Instructor ( )
118+ user . name = name
119+ user . email = email
120+ // user.publicAddress = publicAddress
121+ user . password = this . jwtService . encodePassword ( password )
122+ const registeredUser = await this . insturctorRepository . save (
123+ user
124+ )
125+ return {
126+ id : registeredUser . id ,
127+ name : registeredUser . name ,
128+ email : registeredUser . email ,
129+ token : null ,
130+ createdAt : registeredUser . createdAt ,
131+ updatedAt : registeredUser . updatedAt
132+ }
120133 }
121134 }
122135 }
@@ -209,6 +222,30 @@ export class AuthService {
209222 }
210223 }
211224
225+ public checkUser = async ( email , type ) => {
226+ if ( type == 'Admin' ) {
227+ const found = await this . userRepository . findOne ( {
228+ where : { email : email }
229+ } )
230+ return found ? true : false
231+ } else if ( type == 'Learner' ) {
232+ const found = await this . learnerRepository . findOne ( {
233+ where : { email : email }
234+ } )
235+ return found ? true : false
236+ } else if ( type == 'Instructor' ) {
237+ const found = await this . insturctorRepository . findOne ( {
238+ where : { email : email }
239+ } )
240+ return found ? true : false
241+ } else if ( type == 'Institution' ) {
242+ const found = await this . institutionRepository . findOne ( {
243+ where : { email : email }
244+ } )
245+ return found ? true : false
246+ }
247+ }
248+
212249 /**
213250 * VALIDATING A USER
214251 */
0 commit comments