HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RImmers2/portal.photomenu.nl/wwwroot/models/restaurant.js
exports.id = 'restaurant';

exports.list = function () {
    return new Promise(function (resolve) {
        F.firebase('/Restaurant').orderByChild('Name').once('value').then(function (snapshot) {
            resolve(snapshot);
        });
    });
};

exports.load = function (id) {
    return new Promise(function (resolve, reject) {
        F.firebase('/Restaurant/' + id).once('value').then(function (snapshot) {
          resolve(snapshot.val());
        }).catch(err => reject(err));
    });
};

exports.edit = function (params) {
    return new Promise(function (resolve, reject) {
      F.firebase('/Restaurant/' + params.id).once('value').then(function (snapshot) {
        let old = snapshot.val();
        //Init.
        params.restaurant.images = params.restaurant.images || old.images;
        params.restaurant['Opening hours per day'] = params.restaurant['Opening hours per day'] || old['Opening hours per day'];
        params.restaurant['Opening hours per day ENG'] = params.restaurant['Opening hours per day ENG'] || old['Opening hours per day ENG'];

        F.firebase().ref('/Restaurant/' + params.id).update(params.restaurant).then(function(snapshot) {
            resolve(snapshot);
        }).catch(err => reject(err));
      }).catch(err => reject(err));
    });
};

exports.create = function (params) {
  return new Promise(function(resolve, reject) {
      // Set default values.
      delete params.restaurant.id;
      for (let i = 0; i<7; i++) {
        params.restaurant['Opening hours per day'][i] = params.restaurant['Opening hours per day'][i] || '';
        params.restaurant['Opening hours per day ENG'][i] = params.restaurant['Opening hours per day ENG'][i] || '';
      }
      // Create an empty menu.
      const uuidV4 = require('uuid/v4');
      const menuID = uuidV4();
      params.restaurant.Menu = menuID;
      return F.firebase().ref('/Restaurant/'+ params.id).set(params.restaurant).then(function(snapshot) {
          resolve(snapshot);
      }).catch(err => reject(err));

  });
};

exports.delete = function (id) {
    return new Promise(function (resolve, reject) {
      F.firebase('/Restaurant/' + id).once('value').then(function (snapshot) {
          const restaurantData = snapshot.val();
          return F.firebase().ref('/Restaurant/').child(id).remove().then(function () {
            F.storage.deleteFiles({
              prefix: `${id}`,
            }, function(err) {
              // Images deleted successfully.
              if (!err) {
                return F.firebase().ref('/Menu/').child(restaurantData.Menu).remove().then(function () {
                  resolve(true);
                })
              } else {
                reject(err)
              }
            });

          });

      }).catch(err => reject(err));
    });
};

exports.formatField = function(field, value) {

};