6
6
REQUEST_STATE ,
7
7
USER_STATUS_NOT_FOUND ,
8
8
REQUEST_TYPE ,
9
- REQUEST_DOES_NOT_EXIST ,
10
9
REQUEST_ALREADY_APPROVED ,
11
10
REQUEST_ALREADY_REJECTED ,
12
11
REQUEST_APPROVED_SUCCESSFULLY ,
@@ -18,7 +17,7 @@ import { createRequest, getRequestById } from "../models/requests";
18
17
import { OooStatusRequest , OooStatusRequestBody } from "../types/oooRequest" ;
19
18
import { UserStatus } from "../types/userStatus" ;
20
19
import { addLog } from "./logService" ;
21
- import { BadRequest } from "http-errors" ;
20
+ import { BadRequest , Conflict } from "http-errors" ;
22
21
import { updateRequest } from "../models/requests" ;
23
22
import { AcknowledgeOooRequestBody } from "../types/oooRequest" ;
24
23
import { addFutureStatus } from "../models/userStatus" ;
@@ -114,29 +113,22 @@ export const createOooRequest = async (
114
113
* @throws {Error } Throws an error if an issue occurs during validation.
115
114
*/
116
115
export const validateOooAcknowledgeRequest = async (
117
- requestId : string ,
118
116
requestType : string ,
119
117
requestStatus : string ,
120
118
) => {
121
119
122
120
try {
123
121
124
122
if ( requestType !== REQUEST_TYPE . OOO ) {
125
- return {
126
- error : INVALID_REQUEST_TYPE
127
- } ;
123
+ throw new BadRequest ( INVALID_REQUEST_TYPE ) ;
128
124
}
129
125
130
126
if ( requestStatus === REQUEST_STATE . APPROVED ) {
131
- return {
132
- error : REQUEST_ALREADY_APPROVED
133
- } ;
127
+ throw new Conflict ( REQUEST_ALREADY_APPROVED ) ;
134
128
}
135
129
136
130
if ( requestStatus === REQUEST_STATE . REJECTED ) {
137
- return {
138
- error : REQUEST_ALREADY_REJECTED
139
- } ;
131
+ throw new Conflict ( REQUEST_ALREADY_REJECTED ) ;
140
132
}
141
133
} catch ( error ) {
142
134
logger . error ( "Error while validating OOO acknowledge request" , error ) ;
@@ -161,26 +153,12 @@ export const acknowledgeOooRequest = async (
161
153
try {
162
154
const requestData = await getRequestById ( requestId ) ;
163
155
164
- if ( requestData . error ) {
165
- logger . error ( "Error while acknowledging OOO request" , { requestId, reason : REQUEST_DOES_NOT_EXIST } ) ;
166
- return {
167
- error : REQUEST_DOES_NOT_EXIST
168
- } ;
169
- }
170
-
171
- const validationError = await validateOooAcknowledgeRequest ( requestId , requestData . type , requestData . status ) ;
172
-
173
- if ( validationError ) {
174
- logger . error ( `Error while validating OOO acknowledge request` , { requestId, reason : validationError . error } ) ;
175
- return {
176
- error : validationError . error
177
- } ;
178
- }
156
+ await validateOooAcknowledgeRequest ( requestData . type , requestData . status ) ;
179
157
180
158
const requestResult = await updateRequest ( requestId , body , superUserId , REQUEST_TYPE . OOO ) ;
181
159
182
160
if ( "error" in requestResult ) {
183
- throw BadRequest ( requestResult . error ) ;
161
+ throw new BadRequest ( requestResult . error ) ;
184
162
}
185
163
186
164
const [ acknowledgeLogType , returnMessage ] =
@@ -201,16 +179,14 @@ export const acknowledgeOooRequest = async (
201
179
await addLog ( requestLog . type , requestLog . meta , requestLog . body ) ;
202
180
203
181
if ( requestResult . status === REQUEST_STATE . APPROVED ) {
204
- const { from, until, userId } = requestData ;
205
- const userFutureStatusData = {
182
+ await addFutureStatus ( {
206
183
requestId,
207
184
state : REQUEST_TYPE . OOO ,
208
- from,
209
- endsOn : until ,
210
- userId,
185
+ from : requestData . from ,
186
+ endsOn : requestData . until ,
187
+ userId : requestData . userId ,
211
188
message : body . comment ,
212
- } ;
213
- await addFutureStatus ( userFutureStatusData ) ;
189
+ } ) ;
214
190
}
215
191
216
192
return {
0 commit comments