diff --git a/app/adapters/share-adapter.ts b/app/adapters/share-adapter.ts index b8ce1c88dd6..5716e5b5b0a 100644 --- a/app/adapters/share-adapter.ts +++ b/app/adapters/share-adapter.ts @@ -1,7 +1,17 @@ import JSONAPIAdapter from '@ember-data/adapter/json-api'; -import config from 'ember-get-config'; +import config from 'ember-osf-web/config/environment'; + +const osfUrl = config.OSF.url; export default class ShareAdapter extends JSONAPIAdapter { host = config.OSF.shareBaseUrl.replace(/\/$/, ''); // Remove trailing slash to avoid // in URLs namespace = 'api/v3'; + + queryRecord(store: any, type: any, query: any) { + // check if we aren't serving locally, otherwise add accessService query param to card/value searches + if (['index-card-search', 'index-value-search'].includes(type.modelName) && !osfUrl.includes('localhost')) { + query.cardSearchFilter['accessService'] = osfUrl; + } + return super.queryRecord(store, type, query); + } } diff --git a/lib/osf-components/addon/components/search-page/component.ts b/lib/osf-components/addon/components/search-page/component.ts index 611cc1b20f8..3635f9876b0 100644 --- a/lib/osf-components/addon/components/search-page/component.ts +++ b/lib/osf-components/addon/components/search-page/component.ts @@ -11,7 +11,6 @@ import Store from '@ember-data/store'; import { action } from '@ember/object'; import Media from 'ember-responsive'; -import config from 'ember-osf-web/config/environment'; import { ShareMoreThanTenThousand } from 'ember-osf-web/models/index-card-search'; import SearchResultModel from 'ember-osf-web/models/search-result'; import ProviderModel from 'ember-osf-web/models/provider'; @@ -67,7 +66,6 @@ interface SearchArgs { activeFilters: Filter[]; } -const osfURL = config.OSF.url; const searchDebounceTime = 100; export default class SearchPage extends Component { @@ -221,10 +219,6 @@ export default class SearchPage extends Component { resourceTypeFilter = Object.values(ResourceTypeFilterValue).join(','); } filterQueryObject['resourceType'] = resourceTypeFilter; - // Add the accessService if we are not serving locally - if (!osfURL.includes('localhost')) { - filterQueryObject['accessService'] = osfURL; // Only fetch items from the current OSF environment - } filterQueryObject = { ...filterQueryObject, ...this.args.defaultQueryOptions }; this.filterQueryObject = filterQueryObject; const searchResult = await this.store.queryRecord('index-card-search', {