Skip to content

Commit 3f709fb

Browse files
committed
Use querystring
1 parent 4ddedd0 commit 3f709fb

8 files changed

Lines changed: 188 additions & 135 deletions

File tree

lib/info/Auth.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,38 @@ import {
44
request,
55
useCookiesFromBrowser,
66
saveCookiesFromResponse,
7-
lightResponse,
8-
getUrlWithParams
7+
lightResponse
98
} from '../util';
109
import {
1110
LightResponse,
1211
RequestParams
1312
} from '../util/type';
1413
import { ClientRequest } from 'http';
14+
import qs from 'querystring';
1515

1616
export async function authRequest ({
1717
key
1818
}: RequestParams): Promise<LightResponse> {
1919
const harEntry = await loadHarEntryByUrl('/auth');
20-
let req: any | Request | ClientRequest = harEntry.request;
21-
req.url = getUrlWithParams({
22-
url: req.url,
23-
params: {
24-
key
25-
}
26-
});
27-
req = parseRequest(req);
28-
req = await useCookiesFromBrowser(req);
29-
// TODO : Use Cookies from Browser => Clean Code
30-
const res = await request(req);
20+
let options: any | Request | ClientRequest = harEntry.request;
21+
const url = new URL(options?.url);
22+
const { host, protocol, pathname, search } = url;
23+
const query = Object.assign(
24+
qs.parse(search?.replace('?', '')),
25+
{ key }
26+
);
27+
const path = [pathname, qs.stringify(query)]
28+
.join('?');
29+
options = Object.assign(
30+
Object.fromEntries(
31+
Object.entries(options)
32+
.filter(([k, v]) => (k != 'url'))
33+
),
34+
{ host, protocol, path }
35+
);
36+
options = parseRequest(options);
37+
options = await useCookiesFromBrowser(options);
38+
const res = await request(options);
3139
await saveCookiesFromResponse(res);
3240
return lightResponse(res);
3341
}

lib/info/Info.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,38 @@ import {
44
request,
55
useCookiesFromBrowser,
66
saveCookiesFromResponse,
7-
lightResponse,
8-
getUrlWithParams
7+
lightResponse
98
} from '../util';
109
import {
1110
RequestParams,
1211
LightResponse
1312
} from '../util/type';
1413
import { ClientRequest } from 'http';
14+
import qs from 'querystring';
1515

1616
export async function infoRequest ({
1717
key
1818
}: RequestParams): Promise<LightResponse> {
1919
const harEntry = await loadHarEntryByUrl('/info');
20-
let req: any | Request | ClientRequest = harEntry.request;
21-
req.url = getUrlWithParams({
22-
url: req.url,
23-
params: {
24-
key
25-
}
26-
});
27-
req = parseRequest(req);
28-
req = await useCookiesFromBrowser(req);
29-
// TODO : Use Cookies from Browser => Clean Code
30-
const res = await request(req);
20+
let options: any | Request | ClientRequest = harEntry.request;
21+
const url = new URL(options?.url);
22+
const { host, protocol, pathname, search } = url;
23+
const query = Object.assign(
24+
qs.parse(search?.replace('?', '')),
25+
{ key }
26+
);
27+
const path = [pathname, qs.stringify(query)]
28+
.join('?');
29+
options = Object.assign(
30+
Object.fromEntries(
31+
Object.entries(options)
32+
.filter(([k, v]) => (k != 'url'))
33+
),
34+
{ host, protocol, path }
35+
);
36+
options = parseRequest(options);
37+
options = await useCookiesFromBrowser(options);
38+
const res = await request(options);
3139
await saveCookiesFromResponse(res);
3240
return lightResponse(res);
3341
}

lib/info/Standby.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import {
55
request,
66
useCookiesFromBrowser,
77
saveCookiesFromResponse,
8-
lightResponse,
9-
getUrlWithParams
8+
lightResponse
109
} from '../util';
1110
import {
1211
LightResponse,
1312
RequestParams
1413
} from '../util/type';
14+
import qs from 'querystring';
1515

1616
/**
1717
* @params { orgCd,sid }
@@ -34,18 +34,26 @@ export async function standbyRequest ({
3434
sid
3535
}: RequestParams): Promise<LightResponse> {
3636
const harEntry = await loadHarEntryByUrl('/reservation');
37-
let req: any | Request | ClientRequest = harEntry.request;
38-
req.url = getUrlWithParams({
39-
url: req.url,
40-
params: {
41-
orgCd,
42-
sid
43-
}
44-
});
45-
req = parseRequest(req);
46-
req = await useCookiesFromBrowser(req);
37+
let options: any | Request | ClientRequest = harEntry.request;
38+
const url = new URL(options?.url);
39+
const { host, protocol, pathname, search } = url;
40+
const query = Object.assign(
41+
qs.parse(search?.replace('?', '')),
42+
{ orgCd, sid }
43+
);
44+
const path = [pathname, qs.stringify(query)]
45+
.join('?');
46+
options = Object.assign(
47+
Object.fromEntries(
48+
Object.entries(options)
49+
.filter(([k, v]) => (k != 'url'))
50+
),
51+
{ host, protocol, path }
52+
);
53+
options = parseRequest(options);
54+
options = await useCookiesFromBrowser(options);
4755
// TODO : Use Cookies from Browser => Clean Code
48-
const res = await request(req);
56+
const res = await request(options);
4957
await saveCookiesFromResponse(res);
5058
return lightResponse(res);
5159
}

lib/submit/Confirm.ts

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import {
55
useCookiesFromBrowser,
66
saveCookiesFromResponse,
77
lightResponse,
8-
getUrlWithParams,
98
getProgressURL
109
} from '../util';
1110
import {
1211
RequestParams,
1312
LightResponse
1413
} from '../util/type';
1514
import { ClientRequest } from 'http';
15+
import qs from 'querystring';
1616

1717
/**
1818
*
@@ -30,29 +30,35 @@ export async function confirmRequest ({
3030
cd
3131
}: RequestParams): Promise<LightResponse> {
3232
const harEntry = await loadHarEntryByUrl('/info');
33-
let req: any | Request | ClientRequest = harEntry.request;
34-
const url = req.url.replace('/info', '/confirm');
35-
req.url = getUrlWithParams({
36-
url,
37-
params: {
38-
key
33+
let options: any | Request | ClientRequest = harEntry.request;
34+
const url = new URL(options?.url?.replace('/info', '/success'));
35+
const { host, protocol, pathname, search } = url;
36+
const query = Object.assign(
37+
qs.parse(search?.replace('?', '')),
38+
{ key }
39+
);
40+
const path = [pathname, qs.stringify(query)]
41+
.join('?');
42+
options = Object.assign(
43+
Object.fromEntries(
44+
Object.entries(options)
45+
.filter(([k, v]) => (k != 'url'))
46+
),
47+
{ host, protocol, path }
48+
);
49+
options = parseRequest(options);
50+
options = await useCookiesFromBrowser(options);
51+
options.headers.referer = getProgressURL(
52+
{
53+
url: `${protocol}//${host}/${pathname}?${qs.stringify(query)}`,
54+
params: { key, cd }
3955
}
40-
});
41-
req = parseRequest(req);
42-
req.method = 'POST';
43-
req.headers.Accept = 'application/json';
44-
req.headers['Content-Type'] = 'application/json';
45-
req.headers.referer = getProgressURL({
46-
url,
47-
params: {
48-
key,
49-
cd
50-
}
51-
});
52-
req.body = JSON.stringify({ key });
53-
req = await useCookiesFromBrowser(req);
54-
// TODO : Use Cookies from Browser => Clean Code
55-
const res = await request(req);
56+
);
57+
options = parseRequest(options);
58+
options.method = 'POST';
59+
options.headers.Accept = 'application/json';
60+
options.headers['Content-Type'] = 'application/json';
61+
const res = await request(options);
5662
await saveCookiesFromResponse(res);
5763
return lightResponse(res);
5864
}

lib/submit/Progress.ts

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import {
44
request,
55
useCookiesFromBrowser,
66
saveCookiesFromResponse,
7-
lightResponse,
8-
getUrlWithParams
7+
lightResponse
98
} from '../util';
109
import {
1110
RequestParams,
1211
LightResponse
1312
} from '../util/type';
1413
import { ClientRequest } from 'http';
14+
import qs from 'querystring';
1515

1616
/**
1717
*
@@ -26,18 +26,25 @@ export async function progressRequest ({
2626
cd
2727
}: RequestParams): Promise<LightResponse> {
2828
const harEntry = await loadHarEntryByUrl('/info');
29-
let req: any | Request | ClientRequest = harEntry.request;
30-
req.url = getUrlWithParams({
31-
url: req.url.replace('/info', '/progress'),
32-
params: {
33-
key,
34-
cd
35-
}
36-
});
37-
req = parseRequest(req);
38-
req = await useCookiesFromBrowser(req);
39-
// TODO : Use Cookies from Browser => Clean Code
40-
const res = await request(req);
29+
let options: any | Request | ClientRequest = harEntry.request;
30+
const url = new URL(options?.url?.replace('/info', '/success'));
31+
const { host, protocol, pathname, search } = url;
32+
const query = Object.assign(
33+
qs.parse(search?.replace('?', '')),
34+
{ key, cd }
35+
);
36+
const path = [pathname, qs.stringify(query)]
37+
.join('?');
38+
options = Object.assign(
39+
Object.fromEntries(
40+
Object.entries(options)
41+
.filter(([k, v]) => (k != 'url'))
42+
),
43+
{ host, protocol, path }
44+
);
45+
options = parseRequest(options);
46+
options = await useCookiesFromBrowser(options);
47+
const res = await request(options);
4148
await saveCookiesFromResponse(res);
4249
return lightResponse(res);
4350
}

lib/submit/result/Error.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,46 @@ import {
55
useCookiesFromBrowser,
66
saveCookiesFromResponse,
77
lightResponse,
8-
getUrlWithParams,
98
getProgressURL
109
} from '../../util';
1110
import {
1211
RequestParams,
1312
LightResponse
1413
} from '../../util/type';
1514
import { ClientRequest } from 'http';
15+
import qs from 'querystring';
1616

1717
export async function errorRequest ({
1818
key,
1919
cd,
2020
code
2121
}: RequestParams): Promise<LightResponse> {
2222
const harEntry = await loadHarEntryByUrl('/info');
23-
let req: any | Request | ClientRequest = harEntry.request;
24-
const url = req.url.replace('/info', '/error');
25-
req.url = getUrlWithParams({
26-
url,
27-
params: {
28-
key,
29-
code
23+
let options: any | Request | ClientRequest = harEntry.request;
24+
const url = new URL(options?.url?.replace('/info', '/error'));
25+
const { host, protocol, pathname, search } = url;
26+
const query = Object.assign(
27+
qs.parse(search?.replace('?', '')),
28+
{ key }
29+
);
30+
const path = [pathname, qs.stringify(query)]
31+
.join('?');
32+
options = Object.assign(
33+
Object.fromEntries(
34+
Object.entries(options)
35+
.filter(([k, v]) => (k != 'url'))
36+
),
37+
{ host, protocol, path }
38+
);
39+
options = parseRequest(options);
40+
options = await useCookiesFromBrowser(options);
41+
options.headers.referer = getProgressURL(
42+
{
43+
url: `${protocol}//${host}/${pathname}?${qs.stringify(query)}`,
44+
params: { key, cd }
3045
}
31-
});
32-
req = parseRequest(req);
33-
req.headers.referer = getProgressURL({
34-
url,
35-
params: {
36-
key,
37-
cd
38-
}
39-
});
40-
req = await useCookiesFromBrowser(req);
41-
// TODO : Use Cookies from Browser => Clean Code
42-
const res = await request(req);
46+
);
47+
const res = await request(options);
4348
await saveCookiesFromResponse(res);
4449
return lightResponse(res);
4550
}

0 commit comments

Comments
 (0)