Skip to content

Commit

Permalink
use searchParams object
Browse files Browse the repository at this point in the history
  • Loading branch information
shortcuts committed Jan 7, 2022
1 parent aad0c09 commit 6cc05ef
Show file tree
Hide file tree
Showing 34 changed files with 437 additions and 190 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,24 @@ import { Requester } from './Requester';

type AdditionalContent = {
headers: Record<string, string>;
searchParams: string | undefined;
userAgent: string | undefined;
connectTimeout: number;
responseTimeout: number;
userAgent: string | undefined;
searchParams: Record<string, any>;
};

function searchParamsWithoutUA(params: URLSearchParams): string | undefined {
let searchParams = '?';
function searchParamsWithoutUA(params: URLSearchParams): Record<string, any> {
const searchParams = {};

for (const [k, v] of params) {
if (k === 'x-algolia-agent') {
continue;
}

searchParams += encodeURI(`${k}=${v}&`);
}

if (searchParams === '?') {
return undefined;
searchParams[k] = v;
}

return searchParams.replace(/&$/, '');
return searchParams;
}

export class EchoRequester extends Requester {
Expand All @@ -39,12 +35,13 @@ export class EchoRequester extends Requester {
): Promise<Response> {
const urlSearchParams = new URL(url).searchParams;
const userAgent = urlSearchParams.get('x-algolia-agent') || undefined;
const searchParams = searchParamsWithoutUA(urlSearchParams);
const additionalContent: AdditionalContent = {
headers,
connectTimeout,
responseTimeout,
userAgent: userAgent ? encodeURI(userAgent) : undefined,
searchParams: searchParamsWithoutUA(urlSearchParams),
searchParams,
};

return Promise.resolve({
Expand Down
18 changes: 9 additions & 9 deletions specs/analytics/paths/common/parameters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ Attribute:
schema:
type: string

Search:
in: path
name: search
description: The query term. Must match the exact user input.
required: true
schema:
type: string

# query
OrderBy:
in: query
Expand Down Expand Up @@ -42,15 +50,7 @@ Limit:
type: integer
default: 10

Search:
in: path
name: search
description: The query term. Must match the exact user input.
required: true
schema:
type: string

SearchInPath:
SearchInQuery:
in: path
name: search
description: The query term. Must match the exact user input.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ get:
summary: Returns top filter attributes for a given search.
parameters:
- $ref: '../../../common/parameters.yml#/Index'
- $ref: '../common/parameters.yml#/SearchInPath'
- $ref: '../common/parameters.yml#/SearchInQuery'
- $ref: '../../../common/parameters.yml#/StartDate'
- $ref: '../../../common/parameters.yml#/EndDate'
- $ref: '../common/parameters.yml#/Limit'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ get:
schema:
type: string
- $ref: '../../../common/parameters.yml#/Index'
- $ref: '../common/parameters.yml#/SearchInPath'
- $ref: '../common/parameters.yml#/SearchInQuery'
- $ref: '../../../common/parameters.yml#/StartDate'
- $ref: '../../../common/parameters.yml#/EndDate'
- $ref: '../common/parameters.yml#/Limit'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ get:
summary: Returns top filters for the given no result search.
parameters:
- $ref: '../../../common/parameters.yml#/Index'
- $ref: '../common/parameters.yml#/SearchInPath'
- $ref: '../common/parameters.yml#/SearchInQuery'
- $ref: '../../../common/parameters.yml#/StartDate'
- $ref: '../../../common/parameters.yml#/EndDate'
- $ref: '../common/parameters.yml#/Limit'
Expand Down
2 changes: 1 addition & 1 deletion specs/analytics/paths/search/getTopHitsForSearch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ get:
summary: Returns top hits for the given search.
parameters:
- $ref: '../../../common/parameters.yml#/Index'
- $ref: '../common/parameters.yml#/SearchInPath'
- $ref: '../common/parameters.yml#/SearchInQuery'
- $ref: '../common/parameters.yml#/ClickAnalytics'
- $ref: '../../../common/parameters.yml#/StartDate'
- $ref: '../../../common/parameters.yml#/EndDate'
Expand Down
7 changes: 6 additions & 1 deletion tests/CTS/clients/analytics/getAverageClickPosition.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@
"request": {
"path": "/2/clicks/averageClickPosition",
"method": "GET",
"searchParams": "?index=index&startDate=Sun%20Sep%2019%201999%2002:00:00%20GMT%200200%20(Central%20European%20Summer%20Time)&endDate=Mon%20Jan%2001%202001%2001:00:00%20GMT%200100%20(Central%20European%20Standard%20Time)&tags=tag"
"searchParams": {
"index": "index",
"startDate": "1999-09-19",
"endDate": "2001-01-01",
"tags": "tag"
}
}
}
]
7 changes: 6 additions & 1 deletion tests/CTS/clients/analytics/getClickPositions.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@
"request": {
"path": "/2/clicks/positions",
"method": "GET",
"searchParams": "?index=index&startDate=Sun%20Sep%2019%201999%2002:00:00%20GMT%200200%20(Central%20European%20Summer%20Time)&endDate=Mon%20Jan%2001%202001%2001:00:00%20GMT%200100%20(Central%20European%20Standard%20Time)&tags=tag"
"searchParams": {
"index": "index",
"startDate": "1999-09-19",
"endDate": "2001-01-01",
"tags": "tag"
}
}
}
]
Loading

0 comments on commit 6cc05ef

Please sign in to comment.