@@ -4,16 +4,16 @@ import { XHRRequestInterceptor } from 'Utils/XHRRequestInterceptor'
44export class SearchApiRequestsInterceptor {
55 private static searchPropertiesRegex : RegExp = / c i t i e s \/ \d + \/ p r o p e r t i e s \/ \? .* (? = d a t e - s t a r t = (? ! 1 9 4 3 - 0 4 - 1 9 ) ) /
66 private static searchAllPropertiesRegex : RegExp = / c i t i e s \/ \d + \/ p r o p e r t i e s \/ \? .* d a t e - s t a r t = 1 9 4 3 - 0 4 - 1 9 /
7+ private static searchAllPropertiesWithoutDateStartRegex : RegExp = / c i t i e s \/ \d + \/ p r o p e r t i e s \/ (? ! .* [ ? & ] d a t e - s t a r t = ) /
78
89 public static interceptSearch (
910 UrlCallback : Callback < URL > ,
1011 responseCallback : Callback < HostelworldSearch >
1112 ) : typeof this {
1213 const parseUrlWithCallback : Callback < string > = ( url : string ) : string => {
1314 const parsed : URL = new URL ( url )
14- UrlCallback ( parsed )
1515
16- return parsed . toString ( )
16+ return UrlCallback ( parsed ) . toString ( )
1717 }
1818
1919 const parseResponseWithCallback : Callback < string > = ( response : string ) : string => {
@@ -33,16 +33,29 @@ export class SearchApiRequestsInterceptor {
3333 return this
3434 }
3535
36- public static interceptSearchAll ( UrlCallback : Callback < URL > ) : typeof this {
37- const parseUrlWithCallback : Callback < string > = ( url : string ) : string => {
36+ public static interceptSearchAll ( responseCallback : Callback < HostelworldSearch > ) : typeof this {
37+ const updateCustomUrlToSearchAll : Callback < string > = ( url : string ) : string => {
3838 const parsed : URL = new URL ( url )
39+ parsed . searchParams . delete ( 'guests' )
40+ parsed . searchParams . delete ( 'num-nights' )
41+ parsed . searchParams . delete ( 'date-start' )
3942
40- return UrlCallback ( parsed ) . toString ( )
43+ return parsed . toString ( )
44+ }
45+
46+ const parseResponseWithCallback : Callback < string > = ( response : string ) : string => {
47+ const parsed : HostelworldSearch = JSON . parse ( response )
48+
49+ return JSON . stringify ( responseCallback ( parsed ) )
4150 }
4251
4352 XHRRequestInterceptor
4453 . intercept ( { url : this . searchAllPropertiesRegex } )
45- . withUrl ( parseUrlWithCallback )
54+ . withUrl ( updateCustomUrlToSearchAll )
55+
56+ XHRRequestInterceptor
57+ . intercept ( { url : this . searchAllPropertiesWithoutDateStartRegex , status : 200 } )
58+ . withResponse ( parseResponseWithCallback )
4659
4760 return this
4861 }
0 commit comments