-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest.py
More file actions
84 lines (75 loc) · 2 KB
/
test.py
File metadata and controls
84 lines (75 loc) · 2 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
const functions = require('@google-cloud/functions-framework');
const fs = require('fs');
const path = require('path');
// The file name in your deployment package
const LOCAL_FILE_NAME = 'data.json';
const FILE_PATH = path.join(__dirname, LOCAL_FILE_NAME);
// --- Load JSON once on cold start ---
let data = [];
try {
const jsonString = fs.readFileSync(FILE_PATH, 'utf8');
data = JSON.parse(jsonString);
console.log(`Loaded ${data.length} records from ${LOCAL_FILE_NAME}`);
} catch (err) {
console.error(`CRITICAL ERROR: Failed to load data file: ${err.message}`);
}
// --- Cloud Function entry point ---
functions.http('helloHttp', (req, res) => {
res.set('Content-Type', 'application/json');
const dnis = req.query.dnis || req.body.dnis;
console.log(`Received DNIS: ${dnis}`);
if (!dnis) {
console.warn('No DNIS provided in request.');
return res.json({
fulfillmentResponse: {
messages: [
{ text: { text: ['Missing DNIS in request. Please provide a DNIS value.'] } }
]
}
});
}
// Filter data by DNIS
const filteredData = data.filter(item => item.DNIS === dnis);
if (filteredData.length === 0) {
console.warn(`No match found for DNIS ${dnis}.`);
return res.json({
fulfillmentResponse: {
messages: [
{
text: {
text: [
`No record found for DNIS ${dnis}. Please check the number and try again.`
]
}
}
]
},
sessionInfo: {
parameters: {
dnis_found: false,
requested_dnis: dnis
}
}
});
}
// If match found
const record = filteredData[0];
console.log(`Match found for DNIS ${dnis}:`, record);
res.json({
fulfillmentResponse: {
messages: [
{
text: {
text: [record['Welcome Prompt'] || 'Welcome!']
}
}
]
},
sessionInfo: {
parameters: {
...record,
dnis_found: true
}
}
});
});