import {paginatedResponse, withPermissionsCheck} from '../utils'; const ALLOWED_WRITE_ROLES = [ 'Owner', 'Administrator' ]; const ALLOWED_READ_ROLES = [ 'Owner', 'Administrator', 'Editor', 'Author' ]; export default function mockTiers(server) { // CREATE server.post('/tiers/', withPermissionsCheck(ALLOWED_WRITE_ROLES, function ({tiers}) { const attrs = this.normalizedRequestAttrs(); return tiers.create(attrs); })); // READ server.get('/tiers/', withPermissionsCheck(ALLOWED_READ_ROLES, paginatedResponse('tiers'))); server.get('/tiers/:id/', withPermissionsCheck(ALLOWED_READ_ROLES, function ({tiers}, {params}) { let {id} = params; let tier = tiers.find(id); return tier || new Response(404, {}, { errors: [{ type: 'NotFoundError', message: 'Tier not found.' }] }); })); // UPDATE server.put('/tiers/:id/', withPermissionsCheck(ALLOWED_WRITE_ROLES, function ({tiers}, {params}) { const attrs = this.normalizedRequestAttrs(); const tier = tiers.find(params.id); tier.update(attrs); return tier.save(); })); // DELETE server.del('/tiers/:id/', withPermissionsCheck(ALLOWED_WRITE_ROLES, function (schema, request) { const id = request.params.id; schema.tiers.find(id).destroy(); })); }