/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { assign } from '@ember/polyfills'; import ApplicationSerializer from './application'; import classic from 'ember-classic-decorator'; import queryString from 'query-string'; @classic export default class RecommendationSerializer extends ApplicationSerializer { attrs = { taskName: 'Task', }; separateNanos = ['SubmitTime']; extractRelationships(modelClass, hash) { const namespace = !hash.Namespace || hash.Namespace === 'default' ? undefined : hash.Namespace; const [jobURL] = this.store .adapterFor('job') .buildURL('job', JSON.stringify([hash.JobID]), hash, 'findRecord') .split('?'); return assign(super.extractRelationships(...arguments), { job: { links: { related: buildURL(jobURL, { namespace }), }, }, }); } } function buildURL(path, queryParams) { const qpString = queryString.stringify(queryParams); if (qpString) { return `${path}?${qpString}`; } return path; }