mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-10 23:18:42 -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);
|
||||
},
|
||||
|
||||
get offers() {
|
||||
return shared.pipeline(require('./offers'), localUtils);
|
||||
},
|
||||
|
||||
get products() {
|
||||
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.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/mrr', mw.authAdminApi, http(api.members.mrrStats));
|
||||
router.get('/members/stats/subscribers', mw.authAdminApi, http(api.members.subscriberStats));
|
||||
|
|
Loading…
Add table
Reference in a new issue