From c89a01b031e8675f3e0dfecd6a68a1f8e418c501 Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Thu, 17 Mar 2022 15:06:25 +0000 Subject: [PATCH] Added serializer for integrations.destroy refs: https://github.com/TryGhost/Toolbox/issues/245 - The destroy endpoint was missing a serializer - Instead of adding one, we've refactored to use the standard structure for this serializer - Updated the tests to prove the body doesn't change --- .../utils/serializers/output/integrations.js | 41 ++++++++----------- test/e2e-api/admin/integrations.test.js | 5 ++- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/core/server/api/canary/utils/serializers/output/integrations.js b/core/server/api/canary/utils/serializers/output/integrations.js index 76983d1e35..ecc8b17ff5 100644 --- a/core/server/api/canary/utils/serializers/output/integrations.js +++ b/core/server/api/canary/utils/serializers/output/integrations.js @@ -2,33 +2,24 @@ const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:in const mappers = require('./mappers'); module.exports = { - browse({data, meta}, apiConfig, frame) { - debug('browse'); + all(models, apiConfig, frame) { + debug('all'); + + if (!models) { + return; + } + + if (models.meta) { + frame.response = { + integrations: models.data.map(model => mappers.integrations(model, frame)), + meta: models.meta + }; + + return; + } frame.response = { - integrations: data.map(model => mappers.integrations(model, frame)), - meta - }; - }, - read(model, apiConfig, frame) { - debug('read'); - - frame.response = { - integrations: [mappers.integrations(model, frame)] - }; - }, - add(model, apiConfig, frame) { - debug('add'); - - frame.response = { - integrations: [mappers.integrations(model, frame)] - }; - }, - edit(model, apiConfig, frame) { - debug('edit'); - - frame.response = { - integrations: [mappers.integrations(model, frame)] + integrations: [mappers.integrations(models, frame)] }; } }; diff --git a/test/e2e-api/admin/integrations.test.js b/test/e2e-api/admin/integrations.test.js index 6a4c8903af..55aa59d524 100644 --- a/test/e2e-api/admin/integrations.test.js +++ b/test/e2e-api/admin/integrations.test.js @@ -326,7 +326,10 @@ describe('Integrations API', function () { await request.del(localUtils.API.getApiQuery(`integrations/${createdIntegration.id}/`)) .set('Origin', config.get('url')) - .expect(204); + .expect(204) + .expect((_res) => { + _res.body.should.be.empty(); + }); await request.get(localUtils.API.getApiQuery(`integrations/${createdIntegration.id}/`)) .set('Origin', config.get('url'))