1
1
import firestore from "../utils/firestore" ;
2
2
const requestModel = firestore . collection ( "requests" ) ;
3
- import { REQUEST_ALREADY_APPROVED , REQUEST_ALREADY_REJECTED , REQUEST_STATE } from "../constants/requests" ;
3
+ import { REQUEST_ALREADY_APPROVED , REQUEST_ALREADY_REJECTED , REQUEST_STATE , REQUEST_TYPE } from "../constants/requests" ;
4
4
import {
5
5
ERROR_WHILE_FETCHING_REQUEST ,
6
6
ERROR_WHILE_CREATING_REQUEST ,
9
9
} from "../constants/requests" ;
10
10
import { getUserId } from "../utils/users" ;
11
11
import { NotFound } from "http-errors" ;
12
+ import { fetchUser } from "./users" ;
12
13
const SIZE = 5 ;
13
14
14
15
export const createRequest = async ( body : any ) => {
@@ -30,7 +31,7 @@ export const createRequest = async (body: any) => {
30
31
}
31
32
} ;
32
33
33
- export const updateRequest = async ( id : string , body : any , lastModifiedBy : string , type :string ) => {
34
+ export const updateRequest = async ( id : string , body : any , lastModifiedBy : string , type : string ) => {
34
35
try {
35
36
const existingRequestDoc = await requestModel . doc ( id ) . get ( ) ;
36
37
if ( ! existingRequestDoc . exists ) {
@@ -104,11 +105,10 @@ export const getRequests = async (query: any) => {
104
105
...requestDoc . data ( ) ,
105
106
} ;
106
107
}
107
-
108
- if ( requestedBy && dev ) {
108
+
109
+ if ( requestedBy && dev ) {
109
110
requestQuery = requestQuery . where ( "requestedBy" , "==" , requestedBy ) ;
110
- }
111
- else if ( requestedBy ) {
111
+ } else if ( requestedBy ) {
112
112
const requestedByUserId = await getUserId ( requestedBy ) ;
113
113
requestQuery = requestQuery . where ( "requestedBy" , "==" , requestedByUserId ) ;
114
114
}
@@ -165,6 +165,59 @@ export const getRequests = async (query: any) => {
165
165
return null ;
166
166
}
167
167
168
+ // todo: remove this once previous OOO requests are removed form the database
169
+ // @ankush and @suraj had a discussion to manually update or remove the previous OOO requests
170
+ if ( type === REQUEST_TYPE . OOO ) {
171
+ const oooRequests = [ ] ;
172
+ if ( ! dev ) {
173
+ for ( const request of allRequests ) {
174
+ if ( request . status ) {
175
+ const modifiedRequest = {
176
+ id : request . id ,
177
+ type : request . type ,
178
+ from : request . from ,
179
+ until : request . until ,
180
+ message : request . reason ,
181
+ state : request . status ,
182
+ lastModifiedBy : request . lastModifiedBy ?? "" ,
183
+ requestedBy : request . userId ,
184
+ reason : request . comment ?? "" ,
185
+ createdAt : request . createdAt ,
186
+ updatedAt : request . updatedAt ,
187
+ } ;
188
+ oooRequests . push ( modifiedRequest ) ;
189
+ } else {
190
+ oooRequests . push ( request ) ;
191
+ }
192
+ }
193
+ } else {
194
+ for ( const request of allRequests ) {
195
+ if ( request . state ) {
196
+ const userResponse : any = await fetchUser ( { userId : request . requestedBy } ) ;
197
+ const username = userResponse . user . username ;
198
+
199
+ const modifiedRequest = {
200
+ id : request . id ,
201
+ type : request . type ,
202
+ from : request . from ,
203
+ until : request . until ,
204
+ reason : request . message ,
205
+ status : request . state ,
206
+ lastModifiedBy : request . lastModifiedBy ?? null ,
207
+ requestedBy : username ,
208
+ comment : request . reason ?? null ,
209
+ createdAt : request . createdAt ,
210
+ updatedAt : request . updatedAt ,
211
+ userId : request . requestedBy ,
212
+ } ;
213
+ oooRequests . push ( modifiedRequest ) ;
214
+ } else {
215
+ oooRequests . push ( request ) ;
216
+ }
217
+ }
218
+ }
219
+ allRequests = oooRequests ;
220
+ }
168
221
return {
169
222
allRequests,
170
223
prev : prevDoc . empty ? null : prevDoc . docs [ 0 ] . id ,
@@ -206,4 +259,3 @@ export const getRequestByKeyValues = async (keyValues: KeyValues) => {
206
259
throw error ;
207
260
}
208
261
} ;
209
-
0 commit comments