/* global Venue */ 'use strict'; const _ = require('lodash'); const moment = require('moment'); const { generateService, parseParamsToFindOptions } = require('../../helpers/service.helper'); const Sequelize = require('sequelize'); const models = require('../../core/models'); const { citiesComposer, eventComposer } = require('../../helpers/composes.helper'); const extraMethods = { afterFetchAll: (result, params, context) => { if (!result.count) { return result; } let rows = result.rows.map(row => row.toJSON()); if (context.scopes.includes('CitiesOfEvents')) rows = rows.map(city => citiesComposer(city, context)) else rows = rows.map(event => eventComposer(event, context)); return { count: rows.length, rows: rows } }, afterFetchOne: (result, params, context) => { console.log('----------------------------------------------'); console.log(result); if (result) result = result.toJSON(); return eventComposer(result, context); }, _getEvent: (eventId) => { return models.Event.findOne({ where: { id: eventId } }); }, _updateConfirmedEvent: (eventId, confirmed) => { return new Promise(function (resolve, reject) { models.Event.update( { confirmed: confirmed, }, { where: { id: eventId } }) .then(function (result) { //const aaa = result[0]; //console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaa'); //console.log(aaa); resolve((result[0] === 1)); }) .catch(function (error) { reject(error) }); }); }, _updateSoldOutEvent: (eventId, sold_out) => { return new Promise(function (resolve, reject) { models.Event.update( { sold_out: sold_out, }, { where: { id: eventId } }) .then(function (result) { //const aaa = result[0]; //console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaa'); //console.log(aaa); resolve((result[0] === 1)); }) .catch(function (error) { reject(error) }); }); }, _deleteMember: () => { return true; var marketingList = (inscription.type == 'regular') ? inscription.conference.marketingList : inscription.level.partner.marketingList; return new Promise(function (resolve, reject) { if (!marketingList) { resolve(); } else { resolve(marketing.deleteMember(marketingList, inscription.marketingMemberId)) } }); }, }; module.exports = generateService(models.Event, extraMethods);