42 lines
1 KiB
JavaScript
42 lines
1 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import ApplicationAdapter from './application';
|
|
import classic from 'ember-classic-decorator';
|
|
|
|
@classic
|
|
export default class RecommendationSummaryAdapter extends ApplicationAdapter {
|
|
pathForType = () => 'recommendations';
|
|
|
|
urlForFindAll() {
|
|
const url = super.urlForFindAll(...arguments);
|
|
return `${url}?namespace=*`;
|
|
}
|
|
|
|
updateRecord(store, type, snapshot) {
|
|
const url = `${super.urlForCreateRecord(
|
|
'recommendations',
|
|
snapshot
|
|
)}/apply`;
|
|
|
|
const allRecommendationIds = snapshot
|
|
.hasMany('recommendations')
|
|
.mapBy('id');
|
|
const excludedRecommendationIds = (
|
|
snapshot.hasMany('excludedRecommendations') || []
|
|
).mapBy('id');
|
|
const includedRecommendationIds = allRecommendationIds.removeObjects(
|
|
excludedRecommendationIds
|
|
);
|
|
|
|
const data = {
|
|
Apply: includedRecommendationIds,
|
|
Dismiss: excludedRecommendationIds,
|
|
};
|
|
|
|
return this.ajax(url, 'POST', { data });
|
|
}
|
|
}
|