- Routes to populate/depopulate demo event/item data

This commit is contained in:
2019-07-05 04:33:21 -04:00
parent af13551042
commit b363967841
10 changed files with 378 additions and 102 deletions

View File

@@ -90,49 +90,49 @@ module.exports = function (server, auth) {
}
);
server.get(
'/auth/facebook/link',
auth.secure,
(req, res, next) => {
req.user.record.setLinkCheckBit((err, linkCheckBit) => {
passport.authenticate('facebookLink', {
scope: ['email', 'public_profile'],
session: false,
state: linkCheckbit,
})(req, res, next),
});
},
);
server.get(
'/auth/facebook/linked',
(req, res, next) => {
const linkCheckBit = req.query.state;
return passport.authenticate(
'facebook',
{ failureRedirect: '/profile' },
(err, profile) => {
if (err) {
return next(err);
}
User.linkFacebookProfile(linkCheckBit, profile, (err, user) => {
if (err) {
return next(err);
}
if (!user) {
return next(err, false, 'Linking the account to Facebook was unsuccessful, please try again.');
}
res.send({
success: true,
info: 'Facerbook account successfully linked',
});
});
},
)(req, res, next);
}
);
// server.get(
// '/auth/facebook/link',
// auth.secure,
// (req, res, next) => {
// req.user.record.setLinkCheckBit((err, linkCheckBit) => {
// passport.authenticate('facebookLink', {
// scope: ['email', 'public_profile'],
// session: false,
// state: linkCheckbit,
// })(req, res, next);
// });
// },
// );
//
// server.get(
// '/auth/facebook/linked',
// (req, res, next) => {
// const linkCheckBit = req.query.state;
//
// return passport.authenticate(
// 'facebook',
// { failureRedirect: '/profile' },
// (err, profile) => {
// if (err) {
// return next(err);
// }
//
// User.linkFacebookProfile(linkCheckBit, profile, (err, user) => {
// if (err) {
// return next(err);
// }
//
// if (!user) {
// return next(err, false, 'Linking the account to Facebook was unsuccessful, please try again.');
// }
//
// res.send({
// success: true,
// info: 'Facerbook account successfully linked',
// });
// });
// },
// )(req, res, next);
// }
// );
};

102
routes/demo.js Normal file
View File

@@ -0,0 +1,102 @@
const aqp = require('api-query-params');
const errors = require('restify-errors');
const EventFixture = require('../fixtures/event');
const ItemFixture = require('../fixtures/item');
const Event = require('../models/event');
const Item = require('../models/item');
const mergeItemTicketsWithEventStubTickets = (items, ticketStubs, callback) => {
const getMatchingTicket = (doc) => {
for (let i = 0; i < ticketStubs.length; i++) {
if (doc.title === ticketStubs[i].name) {
ticketStubs[i].itemId = doc.id;
return ticketStubs[i];
}
}
return null;
};
let ticketsWithItemIds = [];
items.forEach((item) => {
if (item.type === 'ticket') {
const mergedTicket = getMatchingTicket(item);
if (mergedTicket) {
ticketsWithItemIds.push(mergedTicket);
}
}
});
callback(ticketsWithItemIds);
};
module.exports = function (server, auth) {
server.get('/demo/populate', auth.manager, (req, res, next) => {
const eventStub = EventFixture.getEvent(true);
const eventTickets = eventStub.ticketClasses;
delete eventStub.ticketClasses;
Event.create(eventStub, (err, event) => {
if (err) {
return next(err);
}
if (!event) {
return next(err, false, 'There was a problem creating the event');
}
const itemsStub = ItemFixture({
eventId: event.id,
auction: 10,
ticket: eventTickets,
eventStart: eventStub.startTime,
eventEnd: eventStub.endTime,
});
Item.insertMany(itemsStub, (err, items) => {
if (err) {
return next(err);
}
if (!items.length) {
return next(err, false, 'No items were inserted.');
}
mergeItemTicketsWithEventStubTickets(items, eventTickets, (ticketsWithIds) => {
Event.updateOne(
{ _id: event.id },
{ $set: { ticketed: true, ticketClasses: ticketsWithIds } },
(err, event) => {
if (err) {
return next(err);
}
res.send({ success: true, info: 'Demo data successfully inserted.' });
next();
},
);
});
});
});
});
server.get('/demo/depopulate', auth.manager, (req, res, next) => {
let report = { items: null, events: null };
Event.deleteMany({}, (err, { deletedCount = 0 }) => {
report.events = deletedCount;
Item.deleteMany({}, (err, { deletedCount = 0 }) => {
report.items = deletedCount;
res.send({ report });
return next();
});
});
next();
});
};

View File

@@ -20,7 +20,7 @@ module.exports = function (server, auth) {
});
server.get('/events', auth.basic, (req, res, next) => {
Event.apiQuery(req.params, function(err, docs) {
Event.find(req.params, function(err, docs) {
if (err) {
console.error(err);
return next(

View File

@@ -1,6 +1,7 @@
module.exports = function(server, auth) {
require('./auth.js')(server, auth);
require('./bids.js')(server, auth);
require('./demo.js')(server, auth);
require('./events.js')(server, auth);
require('./installs.js')(server, auth);
require('./items.js')(server, auth);