Exemple #1
0
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));    
}
Exemple #2
0
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]);
    }    
}
Exemple #3
0
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");
    }
}
Exemple #4
0
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 ");    
    }
}
Exemple #5
0
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);
        }
    }
}