diff --git a/cloud-functions/nodejs/functions/index.js b/cloud-functions/nodejs/functions/index.js index 4425695..2fdfd24 100644 --- a/cloud-functions/nodejs/functions/index.js +++ b/cloud-functions/nodejs/functions/index.js @@ -208,13 +208,13 @@ exports.kitAlert = async (event, context) => { const docs = await admin.firestore().collection("testData").where("_id", "==", _id.stringValue).get(); docs?.forEach(async (doc) => { - await admin.firestore().collection("testData").doc(doc.id).update({ - abs427: Abs427, - abs555: Abs555, - predictedDenovixRatio: pdr, - prdClassification: classification - // incubationTime: admin.firestore.FieldValue.delete() - }); + // await admin.firestore().collection("testData").doc(doc.id).update({ + // abs427: Abs427, + // abs555: Abs555, + // predictedDenovixRatio: pdr, + // prdClassification: classification + // // incubationTime: admin.firestore.FieldValue.delete() + // }); }) }; @@ -368,3 +368,49 @@ exports.retestMarking = async (event, context) => { } }; +/** + * Triggered by a change to a Firestore document. + * + * @param {!Object} event Event payload. + * @param {!Object} context Metadata for the event. + */ +const axios = require('axios'); +const admin = require("firebase-admin"); +const moment = require('moment'); + +admin.initializeApp(); + +exports.sampleClassification = async (event, context) => { + const resource = context.resource; + // log out the resource string that triggered the function + console.log('Function triggered by change to: ' + resource); + // now log the full event object + console.log(JSON.stringify(event)); + + const { _id, calculatedRatio, deviceRatio, led1Buffer, led2Buffer, led1Sample, led2Sample} = event.value.fields; + const predictionResponse = await axios.post("https://asia-south1-hpos-af3cc.cloudfunctions.net/prediction", + { + "_id": `${_id.stringValue}`, + "calculatedRatio": calculatedRatio.stringValue || calculatedRatio.doubleValue, + "deviceRatio": deviceRatio.stringValue || deviceRatio.doubleValue || deviceRatio.integerValue, + "led1Buffer": led1Buffer.stringValue || led1Buffer.doubleValue || led1Buffer.integerValue, + "led2Buffer": led2Buffer.stringValue || led2Buffer.doubleValue || led2Buffer.integerValue, + "led1Sample": led1Sample.stringValue || led1Sample.doubleValue || led1Sample.integerValue, + "led2Sample": led2Sample.stringValue || led2Sample.doubleValue || led2Sample.integerValue + }, { + headers: { + "Content-Type": "application/json", + "x-client": "e16a1bd15af2ee640f5a7a18c8d8333f5f01f7c66e003bbc21ee52870f1bce27" + } + }); + const { predictedClass } = predictionResponse.data; + console.log("predictedClass", predictedClass); + const docs = await admin.firestore().collection("testData").where("_id", "==", _id.stringValue).get(); + docs?.forEach(async (doc) => { + await admin.firestore().collection("testData").doc(doc.id).update({ + predictedClass: predictedClass, + modelId: "1", + modelVersion: "1.0.1" + }); + }) +};