/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: BUSL-1.1
 */

import ApplicationSerializer from './application';

export default ApplicationSerializer.extend({
  primaryKey: 'name',

  extractLazyPaginatedData(payload) {
    return payload.data.keys.map((key) => {
      const model = {
        name: key,
      };
      if (payload.backend) {
        model.backend = payload.backend;
      }
      return model;
    });
  },

  normalizeItems() {
    const normalized = this._super(...arguments);
    // most roles will only have one in this array,
    // we'll default to the first, and keep the array on the
    // model and show a warning if there's more than one so that
    // they don't inadvertently save
    if (normalized.credential_types) {
      normalized.credential_type = normalized.credential_types[0];
    }
    return normalized;
  },
});
