github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/serializers/recommendation.js (about)

     1  import { assign } from '@ember/polyfills';
     2  import ApplicationSerializer from './application';
     3  import classic from 'ember-classic-decorator';
     4  import queryString from 'query-string';
     5  
     6  @classic
     7  export default class RecommendationSerializer extends ApplicationSerializer {
     8    attrs = {
     9      taskName: 'Task',
    10    };
    11  
    12    separateNanos = ['SubmitTime'];
    13  
    14    extractRelationships(modelClass, hash) {
    15      const namespace =
    16        !hash.Namespace || hash.Namespace === 'default'
    17          ? undefined
    18          : hash.Namespace;
    19  
    20      const [jobURL] = this.store
    21        .adapterFor('job')
    22        .buildURL('job', JSON.stringify([hash.JobID]), hash, 'findRecord')
    23        .split('?');
    24  
    25      return assign(super.extractRelationships(...arguments), {
    26        job: {
    27          links: {
    28            related: buildURL(jobURL, { namespace }),
    29          },
    30        },
    31      });
    32    }
    33  }
    34  
    35  function buildURL(path, queryParams) {
    36    const qpString = queryString.stringify(queryParams);
    37    if (qpString) {
    38      return `${path}?${qpString}`;
    39    }
    40    return path;
    41  }