generated from Real-Dev-Squad/website-template
-
Notifications
You must be signed in to change notification settings - Fork 201
/
extensionRequests.js
63 lines (55 loc) · 1.95 KB
/
extensionRequests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const firestore = require("../utils/firestore");
const extensionRequestsModel = firestore.collection("extensionRequests");
const { buildExtensionRequests, formatExtensionRequest } = require("../utils/extensionRequest");
/**
* Create Extension Request
* @param body { Object }: Body of the extension request
*/
const createETAExtension = async (body) => {
try {
const request = {
timestamp: (new Date().getTime() / 1000).toFixed(0),
...body,
};
return await extensionRequestsModel.add(request);
} catch (err) {
logger.error("Error in adding extension requests", err);
throw err;
}
};
/**
* Fetch all Extension Requests
* @param extensionRequestquery { Object }: Body of the extension request
* @return {Promise<ExtensionRequest|Array>}
*/
const fetchExtensionRequests = async (extensionRequestquery) => {
try {
let extensionRequestsSnapshot = extensionRequestsModel;
Object.entries(extensionRequestquery).forEach(([key, value]) => {
if (value) extensionRequestsSnapshot = extensionRequestsSnapshot.where(key, "==", value);
});
extensionRequestsSnapshot = await extensionRequestsSnapshot.get();
const requests = buildExtensionRequests(extensionRequestsSnapshot);
const promises = requests.map((request) => formatExtensionRequest(request));
const updatedRequests = await Promise.all(promises);
return updatedRequests;
} catch (err) {
logger.error("error getting extension requests", err);
throw err;
}
};
const fetchExtensionRequest = async (extensionRequestId) => {
try {
const extensionRequest = await extensionRequestsModel.doc(extensionRequestId).get();
const extensionRequestData = await formatExtensionRequest(extensionRequest.data());
return { extensionRequestData };
} catch (err) {
logger.error("Error retrieving extension request data", err);
throw err;
}
};
module.exports = {
createETAExtension,
fetchExtensionRequests,
fetchExtensionRequest,
};