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) {
};