@@ -144,131 +144,173 @@ export const deleteMahasiswa = async (req, res) => {
144
144
}
145
145
146
146
export const postRolePembimbing1 = async ( req , res ) => {
147
- const refreshToken = req . cookies . refreshToken ;
148
- if ( ! refreshToken ) return res . status ( 401 ) . json ( {
147
+ const { iduser, idmahasiswa } = req . params
148
+
149
+ const pembimbing1Exist = await Mahasiswa . findOne ( {
150
+ where : {
151
+ idpembimbing1 : null ,
152
+ id : idmahasiswa
153
+ }
154
+ } )
155
+ if ( ! pembimbing1Exist ) return res . status ( 400 ) . json ( {
149
156
status : res . statusCode ,
150
- message : "Unauthorized"
151
- } ) ;
152
- const user = await Users . findAll ( {
157
+ message : 'Mahasiswa Sudah Ada Pembimbing 1 !'
158
+ } )
159
+
160
+ const userExist = await Mahasiswa . findOne ( {
153
161
where : {
154
- refresh_token : refreshToken
162
+ id : idmahasiswa ,
163
+ [ Op . or ] : [
164
+ { idpembimbing1 : iduser } ,
165
+ { idpembimbing2 : iduser } ,
166
+ { idpenguji : iduser }
167
+ ]
155
168
}
156
- } ) ;
157
- if ( ! user [ 0 ] ) return res . status ( 403 ) . json ( {
169
+ } )
170
+ if ( userExist ) return res . status ( 400 ) . json ( {
158
171
status : res . statusCode ,
159
- message : "Forbidden"
160
- } ) ;
172
+ message : 'Anda sudah menjadi pembimbing/penguji !'
173
+ } )
174
+
161
175
try {
162
176
const updateMahasiswa = await Mahasiswa . update ( {
163
- idpembimbing1 : user [ 0 ] . id ,
177
+ idpembimbing1 : iduser ,
164
178
} , {
165
179
where : {
166
- id : req . params . id ,
180
+ id : idmahasiswa ,
167
181
}
168
182
} ) ;
169
183
if ( updateMahasiswa == 0 ) return error
170
184
const searchmahasiswa = await Mahasiswa . findOne ( {
171
185
where : {
172
- id : req . params . id ,
186
+ id : idmahasiswa ,
173
187
}
174
188
} )
175
189
res . status ( 200 ) . json ( {
176
- id : req . params . id ,
190
+ id : idmahasiswa ,
177
191
status : res . statusCode ,
178
192
message : 'Berhasil memperbarui mahasiswa' ,
179
193
data : searchmahasiswa
180
194
} )
181
195
} catch ( err ) {
182
196
res . status ( 400 ) . json ( {
183
- id : req . params . id ,
197
+ id : idmahasiswa ,
184
198
status : res . statusCode ,
185
199
message : 'Gagal memperbarui mahasiswa'
186
200
} )
187
201
}
188
202
}
189
203
190
204
export const postRolePembimbing2 = async ( req , res ) => {
191
- const refreshToken = req . cookies . refreshToken ;
192
- if ( ! refreshToken ) return res . status ( 401 ) . json ( {
205
+ const { iduser, idmahasiswa } = req . params
206
+
207
+ const pembimbing2Exist = await Mahasiswa . findOne ( {
208
+ where : {
209
+ idpembimbing2 : null ,
210
+ id : idmahasiswa
211
+ }
212
+ } )
213
+ if ( ! pembimbing2Exist ) return res . status ( 400 ) . json ( {
193
214
status : res . statusCode ,
194
- message : "Unauthorized"
195
- } ) ;
196
- const user = await Users . findAll ( {
215
+ message : 'Mahasiswa Sudah Ada Pembimbing 2 !'
216
+ } )
217
+
218
+ const userExist = await Mahasiswa . findOne ( {
197
219
where : {
198
- refresh_token : refreshToken
220
+ id : idmahasiswa ,
221
+ [ Op . or ] : [
222
+ { idpembimbing1 : iduser } ,
223
+ { idpembimbing2 : iduser } ,
224
+ { idpenguji : iduser }
225
+ ]
199
226
}
200
- } ) ;
201
- if ( ! user [ 0 ] ) return res . status ( 403 ) . json ( {
227
+ } )
228
+ if ( userExist ) return res . status ( 400 ) . json ( {
202
229
status : res . statusCode ,
203
- message : "Forbidden"
204
- } ) ;
230
+ message : 'Anda sudah menjadi pembimbing/penguji !'
231
+ } )
232
+
205
233
try {
206
234
const updateMahasiswa = await Mahasiswa . update ( {
207
- idpembimbing2 : user [ 0 ] . id ,
235
+ idpembimbing2 : iduser ,
208
236
} , {
209
237
where : {
210
- id : req . params . id ,
238
+ id : idmahasiswa ,
211
239
}
212
240
} ) ;
213
241
if ( updateMahasiswa == 0 ) return error
214
242
const searchmahasiswa = await Mahasiswa . findOne ( {
215
243
where : {
216
- id : req . params . id ,
244
+ id : idmahasiswa ,
217
245
}
218
246
} )
219
247
res . status ( 200 ) . json ( {
220
- id : req . params . id ,
248
+ id : idmahasiswa ,
221
249
status : res . statusCode ,
222
250
message : 'Berhasil memperbarui mahasiswa' ,
223
251
data : searchmahasiswa
224
252
} )
225
253
} catch ( err ) {
226
254
res . status ( 400 ) . json ( {
227
- id : req . params . id ,
255
+ id : idmahasiswa ,
228
256
status : res . statusCode ,
229
257
message : 'Gagal memperbarui mahasiswa'
230
258
} )
231
259
}
232
260
}
233
261
234
262
export const postRolePenguji = async ( req , res ) => {
235
- const refreshToken = req . cookies . refreshToken ;
236
- if ( ! refreshToken ) return res . status ( 401 ) . json ( {
263
+ const { iduser, idmahasiswa } = req . params
264
+
265
+ const pengujiExist = await Mahasiswa . findOne ( {
266
+ where : {
267
+ idpenguji : null ,
268
+ id : idmahasiswa
269
+ }
270
+ } )
271
+ if ( ! pengujiExist ) return res . status ( 400 ) . json ( {
237
272
status : res . statusCode ,
238
- message : "Unauthorized"
239
- } ) ;
240
- const user = await Users . findAll ( {
273
+ message : 'Mahasiswa Sudah Ada Penguji !'
274
+ } )
275
+
276
+ const userExist = await Mahasiswa . findOne ( {
241
277
where : {
242
- refresh_token : refreshToken
278
+ id : idmahasiswa ,
279
+ [ Op . or ] : [
280
+ { idpembimbing1 : iduser } ,
281
+ { idpembimbing2 : iduser } ,
282
+ { idpenguji : iduser }
283
+ ]
243
284
}
244
- } ) ;
245
- if ( ! user [ 0 ] ) return res . status ( 403 ) . json ( {
285
+ } )
286
+ if ( userExist ) return res . status ( 400 ) . json ( {
246
287
status : res . statusCode ,
247
- message : "Forbidden"
248
- } ) ;
288
+ message : 'Anda sudah menjadi pembimbing/penguji !'
289
+ } )
290
+
249
291
try {
250
292
const updateMahasiswa = await Mahasiswa . update ( {
251
- idpenguji : user [ 0 ] . id ,
293
+ idpenguji : iduser ,
252
294
} , {
253
295
where : {
254
- id : req . params . id ,
296
+ id : idmahasiswa ,
255
297
}
256
298
} ) ;
257
299
if ( updateMahasiswa == 0 ) return error
258
300
const searchmahasiswa = await Mahasiswa . findOne ( {
259
301
where : {
260
- id : req . params . id ,
302
+ id : idmahasiswa ,
261
303
}
262
304
} )
263
305
res . status ( 200 ) . json ( {
264
- id : req . params . id ,
306
+ id : idmahasiswa ,
265
307
status : res . statusCode ,
266
308
message : 'Berhasil memperbarui mahasiswa' ,
267
309
data : searchmahasiswa
268
310
} )
269
311
} catch ( err ) {
270
312
res . status ( 400 ) . json ( {
271
- id : req . params . id ,
313
+ id : idmahasiswa ,
272
314
status : res . statusCode ,
273
315
message : 'Gagal memperbarui mahasiswa'
274
316
} )
0 commit comments