/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import ApplicationSerializer from './application'; export default class NamespaceSerializer extends ApplicationSerializer { attrs = { path: { serialize: false }, }; normalizeList(payload) { const data = payload.data.keys ? payload.data.keys.map((key) => ({ path: key, // remove the trailing slash from the id id: key.replace(/\/$/, ''), })) : payload.data; return data; } normalizeResponse(store, primaryModelClass, payload, id, requestType) { const nullResponses = ['deleteRecord', 'createRecord']; const cid = (id || payload.id || '').replace(/\/$/, ''); const normalizedPayload = nullResponses.includes(requestType) ? { id: cid, path: cid } : this.normalizeList(payload); return super.normalizeResponse(store, primaryModelClass, normalizedPayload, id, requestType); } }