Snippets

Popina Sync Gateway Config File Channels 104.155.33.203

Created by Thomas Hebert last modified
{
 "interface":":4984",
 "adminInterface":":4985",
 "log": ["*"],
   "databases": {
    "database": {
     "server":"http://104.155.33.203:8091/",
     "bucket":"default",
     "users": {
      "GUEST": {"disabled": true, "admin_channels": ["*"]}
      },
      "sync":`

function (doc, oldDoc) {
     if (!doc.owner) throw({forbidden : "Documents must have a owner"});

     var webChannelForOwner = 'webFor_' + doc.owner;
     var mobileChannelForOwner = 'mobileFor_' + doc.owner;
     
     var restaurantForOwner = 'restaurantFor_' + doc.owner;
     var liveTillsForOwner = 'liveTillsFor_' + doc.owner;
     var pausedTillsForOwner = 'pausedTillsFor_' + doc.owner;
     var statsTillsForOwner = 'statsTillsFor_' + doc.owner;

     var channels = [mobileChannelForOwner, webChannelForOwner];

     var restaurantTypes = [
                            'Account',
                            'Carte',
                            'CarteCategory',
                            'CarteMacroCategory',
                            'CarteTable',
                            'Discount',
                            'Item',
                            // 'ItemOrder',
                            'ItemStock',
                            'Map',
                            'Menu',
                            // 'MenuOrder',
                            'MenuPrice',
                            // 'MenuPriceOrder',
                            'MenuStep',
                            'Option',
                            'OptionCategory',
                            // 'OptionOrder',
                            // 'Order',
                            // 'Payment',
                            // 'PaymentItemOrder',
                            // 'PaymentMenuOrder',
                            'PaymentMethod',
                            // 'PaymentOptionOrder',
                            // 'PaymentSession',
                            'Person',
                            'PlaceOfPreparation',
                            'PositionItemCategory',
                            'PositionItemSelection',
                            'PositionItemStepMenu',
                            'PreparationStep',
                            // 'PreparationStepOrder',
                            'Printer',
                            'Restaurant',
                            'Room',
                            'Selection',
                            // 'Shift',
                            // 'StatsDiscount',
                            // 'StatsItem',
                            // 'StatsMenu',
                            // 'StatsOption',
                            // 'StatsOrder',
                            // 'StatsShift',
                            // 'StatsTill',
                            // 'StatsTillPaymentTotal',
                            'StockMovement',
                            // 'TableOrder',
                            'Tax',
                            // 'Till',
                            'UnitPrice',
                            // 'UnitPriceOrder',
                            'UnitPriceType'
                            ];

     // route channels
     if (restaurantTypes.indexOf(doc.type) !== -1) {
         channels.push(restaurantForOwner);
     }
     else {
         if (doc.tillStatus === 0) {
              channels.push(liveTillsForOwner);
         }
         else if (doc.tillStatus === 1) {
              channels.push(pausedTillsForOwner);
         }
         else {
              channels.push(statsTillsForOwner);
         }         
     }

     channel(channels);
 }
 `
   }
 }
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.