@@ -5,14 +5,14 @@ import {
55 useCookiesFromBrowser ,
66 saveCookiesFromResponse ,
77 lightResponse ,
8- getUrlWithParams ,
98 getProgressURL
109} from '../util' ;
1110import {
1211 RequestParams ,
1312 LightResponse
1413} from '../util/type' ;
1514import { 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}
0 commit comments