1
1
import { addLog } from "./logService" ;
2
2
import firestore from "../utils/firestore" ;
3
- import { NotFound , BadRequest } from "http-errors" ;
3
+ import { BadRequest } from "http-errors" ;
4
4
import { logType } from "../constants/logs" ;
5
5
import {
6
6
REQUEST_STATE ,
@@ -14,8 +14,8 @@ import {
14
14
LOG_ACTION ,
15
15
INVALID_REQUEST_TYPE ,
16
16
} from "../constants/requests" ;
17
- import { getRequests , updateRequest } from "../models/requests" ;
18
- import { AcknowledgeOOORequestBody , OooStatusRequest } from "../types/oooRequest" ;
17
+ import { updateRequest } from "../models/requests" ;
18
+ import { AcknowledgeOOORequestBody } from "../types/oooRequest" ;
19
19
import { addFutureStatus } from "../models/userStatus" ;
20
20
const requestModel = firestore . collection ( "requests" ) ;
21
21
@@ -40,23 +40,29 @@ export const validateOOOAcknowledgeRequest = async (
40
40
{ requestId, type : requestType } ,
41
41
{ message : INVALID_REQUEST_TYPE }
42
42
) ;
43
- throw BadRequest ( INVALID_REQUEST_TYPE ) ;
43
+ return {
44
+ error : INVALID_REQUEST_TYPE
45
+ } ;
44
46
}
45
47
46
48
if ( requestStatus === REQUEST_STATE . APPROVED ) {
47
49
await addLog ( logType . REQUEST_ALREADY_APPROVED ,
48
50
{ oooRequestId : requestId } ,
49
51
{ message : REQUEST_ALREADY_APPROVED }
50
52
) ;
51
- throw BadRequest ( REQUEST_ALREADY_APPROVED ) ;
53
+ return {
54
+ error : REQUEST_ALREADY_APPROVED
55
+ } ;
52
56
}
53
57
54
58
if ( requestStatus === REQUEST_STATE . REJECTED ) {
55
59
await addLog ( logType . REQUEST_ALREADY_REJECTED ,
56
60
{ oooRequestId : requestId } ,
57
61
{ message : REQUEST_ALREADY_REJECTED }
58
62
) ;
59
- throw BadRequest ( REQUEST_ALREADY_REJECTED ) ;
63
+ return {
64
+ error : REQUEST_ALREADY_REJECTED
65
+ } ;
60
66
}
61
67
} catch ( error ) {
62
68
logger . error ( "Error while validating OOO acknowledge request" , error ) ;
@@ -69,7 +75,7 @@ export const validateOOOAcknowledgeRequest = async (
69
75
*
70
76
* @param {string } requestId - The ID of the OOO request to acknowledge.
71
77
* @param {AcknowledgeOOORequestBody } body - The acknowledgement body containing acknowledging details.
72
- * @param {string } userId - The unique identifier of the superuser user.
78
+ * @param {string } superUserId - The unique identifier of the superuser user.
73
79
* @returns {Promise<object> } The acknowledged OOO request.
74
80
* @throws {Error } Throws an error if an issue occurs during acknowledgment process.
75
81
*/
@@ -86,12 +92,20 @@ export const acknowledgeOOORequest = async (
86
92
{ oooRequestId : requestId } ,
87
93
{ message : REQUEST_DOES_NOT_EXIST }
88
94
) ;
89
- throw NotFound ( REQUEST_DOES_NOT_EXIST ) ;
95
+ return {
96
+ error : REQUEST_DOES_NOT_EXIST
97
+ } ;
90
98
}
91
99
92
100
const requestData = request . data ( ) ;
93
101
94
- await validateOOOAcknowledgeRequest ( requestId , requestData . type , requestData . status ) ;
102
+ const validationResponse = await validateOOOAcknowledgeRequest ( requestId , requestData . type , requestData . status ) ;
103
+
104
+ if ( validationResponse ) {
105
+ return {
106
+ error : validationResponse . error
107
+ } ;
108
+ }
95
109
96
110
const requestResult = await updateRequest ( requestId , body , superUserId , REQUEST_TYPE . OOO ) ;
97
111
@@ -118,18 +132,16 @@ export const acknowledgeOOORequest = async (
118
132
await addLog ( requestLog . type , requestLog . meta , requestLog . body ) ;
119
133
120
134
if ( requestResult . status === REQUEST_STATE . APPROVED ) {
121
- if ( requestData ) {
122
- const { from, until, userId } = requestData ;
123
- const userFutureStatusData = {
124
- requestId,
125
- state : REQUEST_TYPE . OOO ,
126
- from,
127
- endsOn : until ,
128
- userId,
129
- message : body . comment ,
130
- } ;
131
- await addFutureStatus ( userFutureStatusData ) ;
132
- }
135
+ const { from, until, userId } = requestData ;
136
+ const userFutureStatusData = {
137
+ requestId,
138
+ state : REQUEST_TYPE . OOO ,
139
+ from,
140
+ endsOn : until ,
141
+ userId,
142
+ message : body . comment ,
143
+ } ;
144
+ await addFutureStatus ( userFutureStatusData ) ;
133
145
}
134
146
135
147
return {
0 commit comments