- Routes to populate/depopulate demo event/item data
This commit is contained in:
@@ -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
102
routes/demo.js
Normal 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();
|
||||
});
|
||||
};
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user