in src/services/apiService.ts [60:93]
public async getApis(searchQuery?: SearchQuery): Promise<Page<Api>> {
const skip = searchQuery && searchQuery.skip || 0;
const take = searchQuery && searchQuery.take || Constants.defaultPageSize;
const odataFilterEntries = [];
let query = `/apis?$top=${take}&$skip=${skip}`;
if (searchQuery) {
if (searchQuery.tags) {
searchQuery.tags.forEach((tag, index) => {
query = Utils.addQueryParameter(query, `tags[${index}]=${tag.name}`);
});
}
if (searchQuery.pattern) {
const pattern = Utils.encodeURICustomized(searchQuery.pattern, Constants.reservedCharTuplesForOData);
odataFilterEntries.push(`(contains(name,'${pattern}'))`);
}
}
if (odataFilterEntries.length > 0) {
query = Utils.addQueryParameter(query, `$filter=` + odataFilterEntries.join(" and "));
}
query = Utils.addQueryParameter(query, "skipWorkspaces=true");
const pageOfApis = await this.apiClient.get<Page<ApiContract>>(query, [Utils.getIsUserResourceHeader(), await this.apiClient.getPortalHeader("getApis")]);
const page = new Page<Api>();
page.value = pageOfApis.value.map(x => new Api(x));
page.nextLink = pageOfApis.nextLink;
page.count = pageOfApis.count;
return page;
}