summaryrefslogtreecommitdiff
path: root/javascript/freq_GCF.js
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-23 22:35:50 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-23 22:35:50 +0200
commite712800cc853e45c6365b3e3f0c5c7db6f9eb4b3 (patch)
tree8fe274e3a849882f1005297bf0854c3cc40b941d /javascript/freq_GCF.js
parent72a4df59fb735b54ad653778224599148e27c02d (diff)
downloadlinkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.tar.gz
linkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.tar.bz2
linkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.zip
freq_GCF: freq implementation as Google Cloud Function; added security options
Diffstat (limited to 'javascript/freq_GCF.js')
-rw-r--r--javascript/freq_GCF.js39
1 files changed, 16 insertions, 23 deletions
diff --git a/javascript/freq_GCF.js b/javascript/freq_GCF.js
index 79a79bc..79810e6 100644
--- a/javascript/freq_GCF.js
+++ b/javascript/freq_GCF.js
@@ -1,5 +1,6 @@
/** freq.js
*
+ * Google Cloud Functions impementation of `linkeysearch:javascript/freq`
* this script extracts products' order-frequency
* -----------------------------------------------------------------------------
*
@@ -17,11 +18,8 @@
var mysql = require('mysql');
-
const fs = require('fs');
-
const os = require('os');
-
const {Storage} = require('@google-cloud/storage'); // import Google Cloud client library
@@ -42,7 +40,6 @@ const projectId = 'pythia-251711';
const temp_file = os.tmpdir() + '/freq.json';
-
// db connection parametres
// (keep the one that suits your environment; comment out the other)
// -----------------------------------------------------------------------------
@@ -100,7 +97,7 @@ function extract_freq(obj) {
// Save Local
// -----------------------------------------------------------------------------
-function save_local(jsonArray, fileName) {
+async function save_local(jsonArray, fileName) {
let fileStr = JSON.stringify(jsonArray); // convert json to string
// write string to file
@@ -109,7 +106,8 @@ function save_local(jsonArray, fileName) {
console.log("An error occured while writing keywords.json");
return console.log(err);
}
- console.log("JSON file has been saved.");
+ console.log("JSON file", fileName, "has been saved.");
+
});
return true;
@@ -120,7 +118,7 @@ function save_local(jsonArray, fileName) {
// -----------------------------------------------------------------------------
async function upload_file( bucketName, srcFilePath, trgFilePath ) {
// Creates a client
- const storage = new Storage({projectId, keyFilename});
+ const storage = new Storage();
try {
await storage.bucket(bucketName).upload(srcFilePath, {
@@ -138,7 +136,6 @@ async function upload_file( bucketName, srcFilePath, trgFilePath ) {
}
-
// #5
// MAIN function (exposed function to run the whole proccess)
////////////////////////////////////////////////////////////////////////////////
@@ -152,6 +149,8 @@ async function upload_file( bucketName, srcFilePath, trgFilePath ) {
exports.main = () => { // google cloud function entry point
+ console.log('temporary file:', temp_file);
+
// connect;
// get records to proccess;
// call main proccess function;
@@ -176,7 +175,9 @@ exports.main = () => { // google cloud function entry point
WHERE pl.active = 1 AND pl.sap_code IS NOT NULL AND pl.product_category_sap_4 NOT LIKE '72%'\
GROUP BY pl.product_id\
ORDER BY FREQuency DESC\
- LIMIT 60000";
+ LIMIT 50000";
+
+ console.log('Frequencies SQL:', sql)
// query sql
con.query(sql, function (err, result) {
@@ -186,21 +187,13 @@ exports.main = () => { // google cloud function entry point
extract_freq(result); // proccess
console.log('Keywords proccesed!')
- save_local(freq_, temp_file); // save frequencies
-
- upload_file('pythia-files', temp_file, 'uploads/json/freq.json')
+ save_local(freq_, temp_file) // save frequencies
.then( () => {
- console.log('Results saved! Exiting...');
- process.exit(1);
+ upload_file('pythia-files', temp_file, 'uploads/json/freq.json')
+ .then( () => {
+ console.log('Results saved! Exiting...');
+ });
});
-
- /// // echo memory stats
- /// const used = process.memoryUsage();
- /// for (let key in used) {
- /// console.log(`${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);
- /// }
-
- // process.exit(1); // exit
+
});
}
-