exports.addLocation = function() { var address = ff.getEventHandlerData(); // add the Location ff.addReferenceToObj("/ff/resources/Locations/" + address.guid + "GEO", "location", address); ff.updateObj(address); if(common.debug) print("handlers.js.addAddressLocation added 'location' reference to Address " + JSON.stringify(address)); }
exports.grantAccessToVendor = function() { var order = ff.getEventHandlerData(); if(common.debug) print ("handlers.js.grantAccessToVendor received order " + JSON.stringify(order)); var customer = ff.getReferredObject("customer", order); if(common.debug) print ("handlers.js.grantAccessToVendor received customer " + JSON.stringify(customer)); var user = ff.getReferredObject("user", customer); if(common.debug) print ("handlers.js.grantAccessToVendor received user " + JSON.stringify(user)); var vendor = ff.getReferredObject("vendor", order); if(common.debug) print ("handlers.js.grantAccessToVendor received vendor " + JSON.stringify(vendor)); var adminGroup = ff.getReferredObject("admins", vendor); if(common.debug) print ("handlers.js.grantAccessToVendor received adminGroup " + JSON.stringify(adminGroup)); var vendorAdmins = ff.getArrayFromUri(adminGroup.ffUrl + "/users"); if(common.debug) print ("handlers.js.grantAccessToVendor received vendorAdmins " + JSON.stringify(vendorAdmins)); var vendorShare = ff.getReferredObject("vendorAccess", customer); if(common.debug) print ("handlers.js.grantAccessToVendor received vendorShare " + JSON.stringify(vendorShare)); if(!vendorShare) { if(common.debug) print ("handlers.js.grantAccessToVendor missing vendorShare, creating new group"); vendorShare = new ff.FFUserGroup(ff.createObjAtUri({createdBy:user.guid, groupName:'vendorAccess',clazz:'FFUserGroup'}, '/FFUserGroup')); if(common.debug) print ("handlers.js.grantAccessToVendor created vendorShare " + JSON.stringify(vendorShare)); ff.addReferenceToObj(vendorShare.ffUrl, "vendorAccess", customer); ff.updateObj(customer, user.guid); } else { vendorShare = new ff.FFUserGroup(vendorShare); } for (var i = 0; i < vendorAdmins.length; i++) { if(common.debug) print ("handlers.js.grantAccessToVendor adding vendorAdmin to vendorAccess group " + JSON.stringify(vendorAdmins[i])); vendorShare.addUser(vendorAdmins[i]); } }
exports.addToAdminGroup = function() { var newUser = ff.getEventHandlerData(); if (common.isOnTheList(newUser.email)) { var sysAdminGroup = common.getSysAdminGroup(); sysAdminGroup.addUser(newUser); if(common.debug) print ("handlers.js.addToAdminGroup Added " + newUser.email + " to sysAdminGroup"); } }
exports.addQRCode = function() { var product = ff.getEventHandlerData(); var qrimg = common.makeQRCode(product.sku); if(qrimg) { if(common.debug) print("handlers.js.addQRCode generated QRCode image " + qrimg.length); var qrc = new models.QRCode(); qrc = ff.createObjAtUri(qrc, "/QRCodes", "system"); ff.saveBlob(qrc, 'image', qrimg, "image/png"); ff.addReferenceToObj(qrc.ffUrl, "qrcode", product); ff.updateObj(product); if(common.debug) print("handlers.js.addQRCode added 'qrcode' reference to Product " + JSON.stringify(product)); } else { if(common.debug) print("handlers.js.addQRCode did not receive QRCode image "); } }
exports.totalOrder = function() { var order = ff.getEventHandlerData().parentObj; if(common.debug) print("models.js.totalOrder received " + JSON.stringify(order)); var total = 0; var lines = ff.grabBagGetAll(order.ffUrl, "orderLines", order.createdBy); if(common.debug) print("models.js.totalOrder retrieved " + lines.length + " OrderLines"); for (var i = 0; i < lines.length; i++) { total += lines[i].total; } if(order.total == total) { if(common.debug) print("models.js.totalOrder no change in total, skipping " + JSON.stringify(order)); } else { order.total = common.round(total, 2); ff.updateObj(order); if(common.debug) print("models.js.totalOrder updated order total to " + JSON.stringify(order)); } }
function handleWouldYaCreate() { var data = ff.getEventHandlerData(); // add count record to selectedCelebrity var selectedCelebrity = ff.getObjFromUrl('/ff/resources/Celebrity/' + data.selectedGuid); // since we are adding selectedCount field to the ff/resources/Celebrity object lazily, make sure and set the initial value // else returns a null value the first time if(!selectedCelebrity.selectedCount) selectedCelebrity.selectedCount = 0; selectedCelebrity.selectedCount++; ff.updateObj(selectedCelebrity); // add count record to rejectedCelebrity var rejectedCelebrity = ff.getObjFromUrl('/ff/resources/Celebrity/' + data.rejectedGuid); // since we are adding rejectedCount field to the ff/resources/Celebrity object lazily, make sure and set the initial value // else returns a null value the first time if(!rejectedCelebrity.rejectedCount) rejectedCelebrity.rejectedCount = 0; rejectedCelebrity.rejectedCount++; ff.updateObj(rejectedCelebrity); // check if we have new TopCelebrity topCelebrityCheck = ff.getArrayFromUrl(['/ff/resources/TopCelebrity']); if(topCelebrityCheck.length == 0) { topCelebrity = ff.createObjAtUrl((selectedCelebrity), "/ff/resources/TopCelebrity"); print("\t*** hoodyoodoo WouldyaEventHandlers created first currentTopCelebrity: " + topCelebrity.ffUrl + "\n"); } else { topCelebrity = topCelebrityCheck[0]; if(selectedCelebrity.selectedCount > topCelebrity.selectedCount) { if (selectedCelebrity.guid == topCelebrity.guid) { // update the topCelebrity's counts topCelebrity.rejectedCount = selectedCelebrity.rejectedCount || 0; topCelebrity.selectedCount = selectedCelebrity.selectedCount; print ("Updating existing top celebrity's selected and rejected counts to ", topCelebrity.selectedCount, topCelebrity.rejectedCount); ff.updateObj(topCelebrity); } else { // it's a new one! print ("Setting new top celebrity to " + selectedCelebrity.firstName + " " + selectedCelebrity.lastName); ff.deleteObj(topCelebrity); ff.createObjAtUrl(selectedCelebrity, "/TopCelebrity"); user = data.createdBy; message = "Congratulations you have pushed " + selectedCelebrity.firstName + " " + selectedCelebrity.lastName + " to the top of the list!"; if (user != null && message != null) { ff.sendPushNotifications ([user], message); } } } else if (rejectedCelebrity.guid == topCelebrity.guid) { // update the topCelebrity's rejected count topCelebrity.rejectedCount = rejectedCelebrity.rejectedCount || 0; topCelebrity.selectedCount = rejectedCelebrity.selectedCount; print ("Updating existing top celebrity's selected and rejected counts to ", topCelebrity.selectedCount, topCelebrity.rejectedCount); ff.updateObj(topCelebrity); } } }