mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-10 23:36:14 -05:00
Added initial Offers API
refs https://github.com/TryGhost/Team/issues/1083 This is a WIP for the Offers API so that Admin development can begin to use it.
This commit is contained in:
parent
561ef348c9
commit
ff0b1a61b3
3 changed files with 59 additions and 0 deletions
|
@ -85,6 +85,10 @@ module.exports = {
|
||||||
return shared.pipeline(require('./members'), localUtils);
|
return shared.pipeline(require('./members'), localUtils);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get offers() {
|
||||||
|
return shared.pipeline(require('./offers'), localUtils);
|
||||||
|
},
|
||||||
|
|
||||||
get products() {
|
get products() {
|
||||||
return shared.pipeline(require('./products'), localUtils);
|
return shared.pipeline(require('./products'), localUtils);
|
||||||
},
|
},
|
||||||
|
|
50
core/server/api/canary/offers.js
Normal file
50
core/server/api/canary/offers.js
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
const offersService = require('../../services/offers');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
docName: 'offers',
|
||||||
|
|
||||||
|
browse: {
|
||||||
|
permissions: true,
|
||||||
|
async query(frame) {
|
||||||
|
const offers = await offersService.api.listOffers();
|
||||||
|
frame.response = {
|
||||||
|
offers
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
read: {
|
||||||
|
data: ['id'],
|
||||||
|
permissions: true,
|
||||||
|
async query(frame) {
|
||||||
|
const offer = await offersService.api.getOffer(frame.data);
|
||||||
|
frame.response = {
|
||||||
|
offers: [offer]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
edit: {
|
||||||
|
options: ['id'],
|
||||||
|
permissions: true,
|
||||||
|
async query(frame) {
|
||||||
|
const offer = await offersService.api.updateOffer({
|
||||||
|
...frame.data.offers[0],
|
||||||
|
id: frame.options.id
|
||||||
|
});
|
||||||
|
frame.response = {
|
||||||
|
offers: [offer]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
add: {
|
||||||
|
permissions: true,
|
||||||
|
async query(frame) {
|
||||||
|
const offer = await offersService.api.createOffer(frame.data.offers[0]);
|
||||||
|
frame.response = {
|
||||||
|
offers: [offer]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
|
@ -100,6 +100,11 @@ module.exports = function apiRoutes() {
|
||||||
router.del('/members', mw.authAdminApi, http(api.members.bulkDestroy));
|
router.del('/members', mw.authAdminApi, http(api.members.bulkDestroy));
|
||||||
router.put('/members/bulk', mw.authAdminApi, http(api.members.bulkEdit));
|
router.put('/members/bulk', mw.authAdminApi, http(api.members.bulkEdit));
|
||||||
|
|
||||||
|
router.get('/offers', labs.enabledMiddleware('offers'), mw.authAdminApi, http(api.offers.browse));
|
||||||
|
router.post('/offers', labs.enabledMiddleware('offers'), mw.authAdminApi, http(api.offers.add));
|
||||||
|
router.get('/offers/:id', labs.enabledMiddleware('offers'), mw.authAdminApi, http(api.offers.read));
|
||||||
|
router.put('/offers/:id', labs.enabledMiddleware('offers'), mw.authAdminApi, http(api.offers.edit));
|
||||||
|
|
||||||
router.get('/members/stats/count', mw.authAdminApi, http(api.members.memberStats));
|
router.get('/members/stats/count', mw.authAdminApi, http(api.members.memberStats));
|
||||||
router.get('/members/stats/mrr', mw.authAdminApi, http(api.members.mrrStats));
|
router.get('/members/stats/mrr', mw.authAdminApi, http(api.members.mrrStats));
|
||||||
router.get('/members/stats/subscribers', mw.authAdminApi, http(api.members.subscriberStats));
|
router.get('/members/stats/subscribers', mw.authAdminApi, http(api.members.subscriberStats));
|
||||||
|
|
Loading…
Add table
Reference in a new issue