Projekt

Obecné

Profil

Stáhnout (12.3 KB) Statistiky
| Větev: | Tag: | Revize:
1
// ******************** GET DATA APP getCurrentProfile ********************
2

    
3
export const getCurrentProfile = async () => {
4

    
5
  let response;
6

    
7
  try {
8
    response = await fetch(
9
      `${window.config.baseUrl}/users/current/profile`, {
10
        headers: {},
11
        credentials: 'include'
12
      }
13
    );    
14
  } catch (e) {
15
    throw 'Server is not available'
16
    }
17

    
18
  if (response.ok) {
19
    const data = await response.json();
20

    
21
    return {
22
      name: data.firstName + ' ' + data.lastName,
23
      role: data.role,
24
      id: data.id,
25
      holiday: data.vacationCount,
26
      sickday: data.sickDayCount,
27
      photo: data.photo,
28
      takenSickday: data.takenSickDayCount
29
    }
30
  } else {
31
      switch (response.status) {
32
        case 401:
33
          window.location.replace(`/login`)
34
          break;
35
        case 403:
36
          window.location.replace(`/login`)
37
          break;
38
        case 500:
39
          throw new Error('Internal server error.')
40
        default:
41
          throw new Error(response.statusText)
42
      }
43
    }
44
}
45

    
46
// ******************** LOAD DATA to CALENDAR - EMPLOYEE ********************
47
export const getUserCalendar = async (currentUser, fromDate ) => {
48

    
49
  let response;
50

    
51
  try {
52
    response = await fetch(
53
      `${window.config.baseUrl}/user/${currentUser.id}/calendar?from=${fromDate}&status=ACCEPTED&status=REJECTED`, {
54
        headers: {
55
          'Accept': 'application/json',
56
        },
57
        credentials: 'include',
58
        method: 'GET',
59
      }
60
    );
61
  } catch (e) {
62
    throw 'Server is not available'
63
  }
64

    
65
  if (response.ok) {
66
    const data = await response.json();
67
  
68
    return data.filter(day => {
69
      return day.status !== 'PENDING'
70
    }).map(day => {
71

    
72
    const newDate = day.date.split("/").join("-");
73

    
74
    return ({
75
      title: currentUser.name,
76
      start: newDate,
77
      backgroundColor: day.status === 'REJECTED' ? 'red' : 'green'
78
    })
79
  })
80
  } else {
81
      switch (response.status) {
82
        case 400:
83
          throw new Error('Bad request. Check query parameters.')
84
        case 401:
85
          window.location.replace(`/login`)
86
        case 403:
87
          window.location.replace(`/login`)
88
        case 404:
89
          throw new Error('User with given ID does not exist.')
90
        case 500:
91
          throw new Error('Internal server error.')
92
        default:
93
          throw new Error(response.statusText)
94
      }
95
    }
96
}
97

    
98
// ******************** LOAD DATA to CALENDAR - EMPLOYER ********************
99

    
100
export const getAdminCalendar = async () => {
101

    
102
  let response;
103

    
104
  try {
105
    response = await fetch(
106
      `${window.config.baseUrl}/users/requests/vacation?status=ACCEPTED`, {
107
        headers: {
108
          'Accept': 'application/json',
109
        },
110
        credentials: 'include',
111
        method: 'GET',
112
      }
113
    );
114
  } catch (e) {
115
    throw 'Server is not available'
116
  }
117

    
118
  if (response.ok) {
119
    const data = await response.json();
120
    
121
    return data.map(day => {
122

    
123
      const newDate = day.date.split("/").join("-");
124

    
125
      return ( {
126
      title: day.firstName + ' ' + day.lastName,
127
      start: newDate
128
      })
129
    })
130
  } else {
131
      switch (response.status) {
132
        case 400:
133
          throw new Error('Bad request. Check query parameters.')
134
        case 401:
135
          window.location.replace(`/login`)
136
        case 403:
137
          window.location.replace(`/login`)
138
        case 500:
139
          throw new Error('Internal server error.')
140
        default:
141
          throw new Error(response.statusText)
142
      }
143
    }
144
}
145

    
146
// ******************** ADD EVENT to CALENDAR - EMPLOYEE ********************
147

    
148
export async function addEventApi(dataAddEventEmployee) {
149
  let response;
150

    
151
  try {
152
  // send accepted request to server
153
    response = await fetch(`${window.config.baseUrl}/user/calendar/create`, {
154
      headers: {
155
        'Content-Type': 'application/json',
156
      },
157
      credentials: 'include',
158
      method: 'POST',
159
  // object which is sent to server
160
  body: JSON.stringify(dataAddEventEmployee),
161
    });
162
  } catch (e) {
163
    throw 'Server is not available'
164
  }
165

    
166
  if (!response.ok) {
167
      switch (response.status) {
168
        case 400:
169
          throw new Error('Bad request. Check request body.')
170
        case 401:
171
          window.location.replace(`/login`)
172
        case 403:
173
          window.location.replace(`/login`)
174
        case 500:
175
          throw new Error('Internal server error.')
176
        default:
177
          throw new Error(response.statusText)
178
      }    
179
    }
180
}
181
      
182
// ******************** ADD EVENT to CALENDAR - EMPLOYER ********************
183

    
184
export async function addEventApiAdmin(dataAddEventAdmin) {
185
  let response;
186

    
187
  try {
188
  // send accepted request to server
189
    response = await fetch(`${window.config.baseUrl}/user/calendar/create`, {
190
      headers: {
191
        'Content-Type': 'application/json',
192
    },
193
    credentials: 'include',
194
      method: 'POST',
195
    // object which is sent to server
196
      body: JSON.stringify(dataAddEventAdmin),
197
    });
198
  } catch (e) {
199
    throw 'Server is not available'
200
  }
201

    
202
  if (!response.ok) {
203
    switch (response.status) {
204
      case 400:
205
        throw new Error('Bad request. Check request body.')
206
      case 401:
207
        window.location.replace(`/login`)
208
      case 403:
209
        window.location.replace(`/login`)
210
      case 500:
211
        throw new Error('Internal server error.')
212
      default:
213
        throw new Error(response.statusText)
214
    }    
215
  }
216
}
217

    
218
// ******************** GET DATA to OVERVIEW - EMPLOYER ********************
219

    
220
export const getUsersOverview = async () => {
221
  let response;
222

    
223
  try {
224
  response = await fetch (
225
    `${window.config.baseUrl}/users`, {
226
      credentials: 'include',
227
    }
228
  );
229
  } catch (e) {
230
    throw 'Server is not available'
231
  }
232
  
233
  if (response.ok) {
234

    
235
    const data = await response.json();
236
    return data.map(user => {
237

    
238
     return ({
239
           name: user.firstName + ' ' + user.lastName,
240
           id: user.id,
241
           sickday: user.sickDayCount,
242
           holiday: user.vacationCount,
243
           takenSickday: user.takenSickDayCount,
244
           role: user.role
245
        })
246
    })
247
  } else {
248
    switch (response.status) {
249
      case 400:
250
        throw new Error('Bad request. Check query parameters.')
251
      case 401:
252
        window.location.replace(`/login`)
253
      case 403:
254
        window.location.replace(`/login`)
255
      case 500:
256
        throw new Error('Internal server error.')
257
      default:
258
        throw new Error(response.statusText)
259
    }    
260
  }
261
}
262

    
263
// ******************** SAVE DATA to OVERVIEW - EMPLOYER ********************
264

    
265
export async function saveDataOverview(dataOverviewObject) {
266
  let response;
267

    
268
  try {
269
    // send accepted request to server
270
        response = await fetch(`${window.config.baseUrl}/user/settings`, {
271
          headers: {
272
            'Content-Type': 'application/json',
273
          },
274
          credentials: 'include',
275
          method: 'PUT',
276
 
277
    // object which is sent to server
278
          body: JSON.stringify(dataOverviewObject),        
279
        });
280
  } catch (e) {
281
    throw 'Server is not available'
282
  }
283

    
284
  if (!response.ok) {
285
    switch (response.status) {
286
      case 400:
287
        throw new Error('Bad request. Check query parameters.')
288
      case 401:
289
        window.location.replace(`/login`)
290
      case 403:
291
        window.location.replace(`/login`)
292
      case 500:
293
        throw new Error('Internal server error.')
294
      default:
295
        throw new Error(response.statusText)
296
    }
297
  }    
298
}
299

    
300
// ******************** LOAD DATA to SETTING - EMPLOYER ********************
301
export const getSettingData = async () =>  {
302
  let response;
303

    
304
  try {
305
    response = await fetch(
306
      `${window.config.baseUrl}/settings`, {
307
        credentials: 'include',
308
      }
309
    );
310

    
311
  } catch (e) {
312
    throw 'Server is not available'
313
    }
314

    
315
  if (response.ok) {
316
    const data = await response.json();
317
    return {
318
      sickday: data.sickDayCount,
319
    }
320
  } else {
321
    switch (response.status) {
322
      case 500:
323
        throw new Error('Internal server error.')
324
      default:
325
        throw new Error(response.statusText)
326
      }            
327
    }
328

    
329
}
330

    
331
// ******************** SAVE DATA to SETTING - EMPLOYER ********************
332
export async function saveDataSetting(dataSettingObject) {
333
  let response;
334

    
335
  try {
336
    response = await fetch(`${window.config.baseUrl}/settings`, {
337
      headers: {
338
        'Content-Type': 'application/json'
339
      },
340
      credentials: 'include',
341
      method: 'POST',
342
      body: JSON.stringify(dataSettingObject),
343
    });
344
  } catch (e) {
345
    throw 'Server is not available'
346
  }
347

    
348
  if (!response.ok) {
349
    switch (response.status) {
350
      case 401:
351
        window.location.replace(`/login`)
352
      case 403:
353
        window.location.replace(`/login`)
354
      case 500:
355
        throw new Error('Internal server error.')
356
      default:
357
        throw new Error(response.statusText)
358
    }    
359
  }
360
}
361

    
362
// ****************** LOAD DATA to YOUR REQUESTS - EMPLOYEE ******************
363

    
364
export async function loadYourRequests(currentUser) {
365
  let response;
366
  
367
  try {
368
    response = await fetch(
369
      `${window.config.baseUrl}/user/${currentUser.id}/calendar?from=2020/06/24&status=PENDING`, {
370
        credentials: 'include',
371
      }
372
    );
373
  } catch (e) {
374
    throw 'Server is not available'
375
  }
376

    
377
  if (response.ok) {
378
    const data = await response.json();
379
    return data;
380
  } else {
381
      switch (response.status) {
382
        case 400:
383
          throw new Error('Bad request. Check query parameters.')
384
        case 401:
385
          window.location.replace(`/login`)
386
        case 403:
387
          window.location.replace(`/login`)
388
        case 500:
389
          throw new Error('Internal server error.')
390
        default:
391
          throw new Error(response.statusText)
392
      }    
393
    }
394
}
395

    
396
// ****************** LOAD DATA - UPCOMING REQUESTS - EMPLOYER ****************** //tady
397
export async function loadAdminRequests() {
398
  let response;
399

    
400
  try {
401
    response = await fetch(
402
      `${window.config.baseUrl}/users/requests/vacation?status=PENDING`, {
403
        credentials: 'include',
404
      },
405
    );
406
  } catch (e) {
407
    throw 'Server is not available'
408
    } 
409
  
410
  if (response.ok) {
411
    const data = await response.json();
412
      return data;
413
  } else {
414
      switch (response.status) {
415
        case 400:
416
          throw new Error('Bad request. Check query parameters.')
417
        case 401:
418
          window.location.replace(`/login`)
419
        case 403:
420
          window.location.replace(`/login`)
421
        case 500:
422
          throw new Error('Internal server error.')
423
        default:
424
          throw new Error(response.statusText)
425
      }   
426
    }
427
}
428

    
429
// ************** SEND ACCEPTED DATA - UPCOMING REQUESTS - EMPLOYER **************
430

    
431
export async function sendAcceptedRequest(acceptedRequests) {
432
  let response;
433

    
434
  try {
435
    response = await fetch(`${window.config.baseUrl}/user/requests?type=VACATION`, {
436
      headers: {
437
        'Content-Type': 'application/json',
438
      },
439
      credentials: 'include',
440
      method: 'PUT',
441
      body: JSON.stringify(acceptedRequests),
442
    });
443
  } catch (e) {
444
    throw 'Server is not available'
445
    }
446

    
447
  if (!response.ok) {
448
    switch (response.status) {
449
      case 400:
450
        throw new Error('Bad request. Check query parameters and request body.')
451
      case 401:
452
        window.location.replace(`/login`)
453
      case 403:
454
        window.location.replace(`/login`)
455
      case 404:
456
        throw new Error('Neither vacation nor authorization request with given ID exists.')
457
      case 500:
458
        throw new Error('Internal server error.')
459
      default:
460
        throw new Error(response.statusText)
461
    }   
462
  }
463
}
464

    
465
// ************** SEND REJECTED DATA - UPCOMING REQUESTS - EMPLOYER **************
466

    
467
export async function sendRejectedRequest(rejectedRequest) {
468
  let response;
469
  
470
  try {
471
    response = await fetch(`${window.config.baseUrl}/user/requests?type=VACATION`, {
472
      headers: {
473
        'Content-Type': 'application/json',
474
      },
475
      credentials: 'include',
476
      method: 'PUT',
477
      body: JSON.stringify(rejectedRequest),
478
    });
479
  } catch (e) {
480
    throw 'Server is not available'
481
    }
482
  
483
  if (!response.ok) {
484
    switch (response.status) {
485
      case 400:
486
        throw new Error('Bad request. Check query parameters and request body.')
487
      case 401:
488
        window.location.replace(`/login`)
489
      case 403:
490
        window.location.replace(`/login`)
491
      case 404:
492
        throw new Error('Neither vacation nor authorization request with given ID exists.')
493
      case 500:
494
        throw new Error('Internal server error.')
495
      default:
496
        throw new Error(response.statusText)
497
    }    
498
  }
499
}
(13-13/18)