@admin-layout/tailwind-travel-pro 11.2.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/lib/components/CardList.d.ts +61 -0
- package/lib/components/CardList.d.ts.map +1 -0
- package/lib/components/CardList.js +41 -0
- package/lib/components/CardList.js.map +1 -0
- package/lib/components/CategoriesTypeList.d.ts +27 -0
- package/lib/components/CategoriesTypeList.d.ts.map +1 -0
- package/lib/components/CategoriesTypeList.js +163 -0
- package/lib/components/CategoriesTypeList.js.map +1 -0
- package/lib/components/LazyLoadingGoogleMarker.d.ts +83 -0
- package/lib/components/LazyLoadingGoogleMarker.d.ts.map +1 -0
- package/lib/components/LazyLoadingGoogleMarker.js +104 -0
- package/lib/components/LazyLoadingGoogleMarker.js.map +1 -0
- package/lib/components/Pagination.d.ts +7 -0
- package/lib/components/Pagination.d.ts.map +1 -0
- package/lib/components/Pagination.js +55 -0
- package/lib/components/Pagination.js.map +1 -0
- package/lib/components/ParamSearchResultContainer.d.ts +99 -0
- package/lib/components/ParamSearchResultContainer.d.ts.map +1 -0
- package/lib/components/ParamSearchResultContainer.js +115 -0
- package/lib/components/ParamSearchResultContainer.js.map +1 -0
- package/lib/components/PropertyCard.d.ts +25 -0
- package/lib/components/PropertyCard.d.ts.map +1 -0
- package/lib/components/PropertyCard.js +310 -0
- package/lib/components/PropertyCard.js.map +1 -0
- package/lib/components/PropertyCardOnMap.d.ts +10 -0
- package/lib/components/PropertyCardOnMap.d.ts.map +1 -0
- package/lib/components/PropertyCardOnMap.js +113 -0
- package/lib/components/PropertyCardOnMap.js.map +1 -0
- package/lib/components/VehicleCard/PricePopover.d.ts +8 -0
- package/lib/components/VehicleCard/PricePopover.d.ts.map +1 -0
- package/lib/components/VehicleCard/PricePopover.js +79 -0
- package/lib/components/VehicleCard/PricePopover.js.map +1 -0
- package/lib/components/VehicleCard/VehicleBadge.d.ts +7 -0
- package/lib/components/VehicleCard/VehicleBadge.d.ts.map +1 -0
- package/lib/components/VehicleCard/VehicleFeature.d.ts +9 -0
- package/lib/components/VehicleCard/VehicleFeature.d.ts.map +1 -0
- package/lib/components/VehicleCard/VehicleFeature.js +18 -0
- package/lib/components/VehicleCard/VehicleFeature.js.map +1 -0
- package/lib/components/VehicleCard/types.d.ts +59 -0
- package/lib/components/VehicleCard/types.d.ts.map +1 -0
- package/lib/components/VehicleCard.d.ts +15 -0
- package/lib/components/VehicleCard.d.ts.map +1 -0
- package/lib/components/VehicleCard.js +138 -0
- package/lib/components/VehicleCard.js.map +1 -0
- package/lib/components/VehicleCardList.d.ts +14 -0
- package/lib/components/VehicleCardList.d.ts.map +1 -0
- package/lib/components/VehicleCardList.js +37 -0
- package/lib/components/VehicleCardList.js.map +1 -0
- package/lib/components/VehicleParamSearchResultContainer.d.ts +90 -0
- package/lib/components/VehicleParamSearchResultContainer.d.ts.map +1 -0
- package/lib/components/icons/LocationIcon.d.ts +8 -0
- package/lib/components/icons/LocationIcon.d.ts.map +1 -0
- package/lib/components/icons/LocationIcon.js +17 -0
- package/lib/components/icons/LocationIcon.js.map +1 -0
- package/lib/components/icons/index.d.ts +2 -0
- package/lib/components/icons/index.d.ts.map +1 -0
- package/lib/components/index.d.ts +10 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/config/analytics-config.d.ts +59 -0
- package/lib/config/analytics-config.d.ts.map +1 -0
- package/lib/config/constants.d.ts +7 -0
- package/lib/config/constants.d.ts.map +1 -0
- package/lib/config/constants.js +6 -0
- package/lib/config/constants.js.map +1 -0
- package/lib/config/env-config.d.ts +19 -0
- package/lib/config/env-config.d.ts.map +1 -0
- package/lib/config/env-config.js +70 -0
- package/lib/config/env-config.js.map +1 -0
- package/lib/config/index.d.ts +3 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/use-get-current-lat-long.d.ts +18 -0
- package/lib/hooks/use-get-current-lat-long.d.ts.map +1 -0
- package/lib/hooks/use-get-current-lat-long.js +29 -0
- package/lib/hooks/use-get-current-lat-long.js.map +1 -0
- package/lib/hooks/useWindowSize.d.ts +5 -0
- package/lib/hooks/useWindowSize.d.ts.map +1 -0
- package/lib/hooks/useWindowSize.js +20 -0
- package/lib/hooks/useWindowSize.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -0
- package/lib/interfaces/travel.d.ts +6 -0
- package/lib/interfaces/travel.d.ts.map +1 -0
- package/lib/interfaces/travel.js +6 -0
- package/lib/interfaces/travel.js.map +1 -0
- package/lib/middlewares/airbnbDatasourcesMiddleware.d.ts +6 -0
- package/lib/middlewares/airbnbDatasourcesMiddleware.d.ts.map +1 -0
- package/lib/middlewares/airbnbDatasourcesMiddleware.js +121 -0
- package/lib/middlewares/airbnbDatasourcesMiddleware.js.map +1 -0
- package/lib/middlewares/bookingCarRentalMiddleware.d.ts +6 -0
- package/lib/middlewares/bookingCarRentalMiddleware.d.ts.map +1 -0
- package/lib/middlewares/bookingCarRentalMiddleware.js +109 -0
- package/lib/middlewares/bookingCarRentalMiddleware.js.map +1 -0
- package/lib/middlewares/bookingDatasourcesMiddleware.d.ts +7 -0
- package/lib/middlewares/bookingDatasourcesMiddleware.d.ts.map +1 -0
- package/lib/middlewares/bookingDatasourcesMiddleware.js +137 -0
- package/lib/middlewares/bookingDatasourcesMiddleware.js.map +1 -0
- package/lib/middlewares/datasourcesMiddleware.d.ts +6 -0
- package/lib/middlewares/datasourcesMiddleware.d.ts.map +1 -0
- package/lib/middlewares/datasourcesMiddleware.js +29 -0
- package/lib/middlewares/datasourcesMiddleware.js.map +1 -0
- package/lib/middlewares/index.d.ts +6 -0
- package/lib/middlewares/index.d.ts.map +1 -0
- package/lib/middlewares/pricelineDatasourcesMiddleware.d.ts +7 -0
- package/lib/middlewares/pricelineDatasourcesMiddleware.d.ts.map +1 -0
- package/lib/middlewares/pricelineDatasourcesMiddleware.js +95 -0
- package/lib/middlewares/pricelineDatasourcesMiddleware.js.map +1 -0
- package/lib/routes.json +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import {config}from'../config/env-config.js';const middleware = async ({
|
|
2
|
+
context,
|
|
3
|
+
request,
|
|
4
|
+
params
|
|
5
|
+
}, dataLoader, next) => {
|
|
6
|
+
const {
|
|
7
|
+
logger
|
|
8
|
+
} = context;
|
|
9
|
+
let carRentalQuery;
|
|
10
|
+
try {
|
|
11
|
+
const url = new URL(request.url);
|
|
12
|
+
const searchParams = url.searchParams;
|
|
13
|
+
// Parse and validate parameters
|
|
14
|
+
const currency = searchParams.get('currency') || 'USD';
|
|
15
|
+
const locale = searchParams.get('locale') || 'en-gb';
|
|
16
|
+
const pickUpDateTime = searchParams.get('pick_up_datetime');
|
|
17
|
+
const dropOffDateTime = searchParams.get('drop_off_datetime');
|
|
18
|
+
const pickUpLongitude = parseFloat(searchParams.get('pick_up_longitude') || '0');
|
|
19
|
+
const dropOffLongitude = parseFloat(searchParams.get('drop_off_longitude') || '0');
|
|
20
|
+
const pickUpLatitude = parseFloat(searchParams.get('pick_up_latitude') || '0');
|
|
21
|
+
const dropOffLatitude = parseFloat(searchParams.get('drop_off_latitude') || '0');
|
|
22
|
+
const fromCountry = searchParams.get('from_country') || 'us';
|
|
23
|
+
const sortBy = searchParams.get('sort_by') || 'recommended';
|
|
24
|
+
// Validate required parameters
|
|
25
|
+
if (!dropOffDateTime) {
|
|
26
|
+
throw new Error('Drop-off date is required');
|
|
27
|
+
}
|
|
28
|
+
// Validate coordinates
|
|
29
|
+
if (isNaN(pickUpLongitude) || isNaN(dropOffLongitude) || isNaN(pickUpLatitude) || isNaN(dropOffLatitude)) {
|
|
30
|
+
throw new Error('Invalid coordinates provided');
|
|
31
|
+
}
|
|
32
|
+
// Create a promise that will fetch the car rental data
|
|
33
|
+
carRentalQuery = new Promise(async (resolve, reject) => {
|
|
34
|
+
try {
|
|
35
|
+
// Create carRentalParams with the defined type
|
|
36
|
+
const carRentalParams = {
|
|
37
|
+
currency,
|
|
38
|
+
locale,
|
|
39
|
+
pick_up_longitude: pickUpLongitude.toString(),
|
|
40
|
+
from_country: fromCountry,
|
|
41
|
+
drop_off_datetime: dropOffDateTime,
|
|
42
|
+
drop_off_longitude: dropOffLongitude.toString(),
|
|
43
|
+
sort_by: sortBy,
|
|
44
|
+
drop_off_latitude: dropOffLatitude.toString(),
|
|
45
|
+
pick_up_latitude: pickUpLatitude.toString()
|
|
46
|
+
};
|
|
47
|
+
// Add pick_up_datetime only if it exists
|
|
48
|
+
if (pickUpDateTime) {
|
|
49
|
+
carRentalParams.pick_up_datetime = pickUpDateTime;
|
|
50
|
+
}
|
|
51
|
+
const rapidApiKey = config.BOOKING_CAR_RENTAL_API_KEY;
|
|
52
|
+
const response = await fetch('https://booking-com.p.rapidapi.com/v1/car-rental/search?' + new URLSearchParams(carRentalParams), {
|
|
53
|
+
headers: {
|
|
54
|
+
'X-RapidAPI-Key': rapidApiKey,
|
|
55
|
+
'X-RapidAPI-Host': 'booking-com.p.rapidapi.com'
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
throw new Error(`API request failed with status ${response.status}`);
|
|
60
|
+
}
|
|
61
|
+
const responseData = await response.json();
|
|
62
|
+
// const formattedData = formatCarRentalResponse(responseData);
|
|
63
|
+
const results = responseData.search_results || [];
|
|
64
|
+
const restructuredData = {
|
|
65
|
+
...responseData,
|
|
66
|
+
data: results,
|
|
67
|
+
metadata: {
|
|
68
|
+
filters: {
|
|
69
|
+
currency,
|
|
70
|
+
locale,
|
|
71
|
+
fromCountry,
|
|
72
|
+
sortBy,
|
|
73
|
+
pickUpDateTime,
|
|
74
|
+
dropOffDateTime,
|
|
75
|
+
coordinates: {
|
|
76
|
+
pickUp: {
|
|
77
|
+
latitude: pickUpLatitude,
|
|
78
|
+
longitude: pickUpLongitude
|
|
79
|
+
},
|
|
80
|
+
dropOff: {
|
|
81
|
+
latitude: dropOffLatitude,
|
|
82
|
+
longitude: dropOffLongitude
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
resolve(restructuredData);
|
|
89
|
+
} catch (error) {
|
|
90
|
+
logger.error(error, 'Failed to load car rental data:');
|
|
91
|
+
resolve({
|
|
92
|
+
data: [],
|
|
93
|
+
metadata: {
|
|
94
|
+
filters: {}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
logger.info('Car rental data loaded and cached');
|
|
100
|
+
// Ensure componentData is initialized
|
|
101
|
+
dataLoader.componentData = dataLoader.componentData || {};
|
|
102
|
+
// Store as an async function that returns the promise
|
|
103
|
+
dataLoader.componentData.bookingCarRentalResults = async () => await carRentalQuery;
|
|
104
|
+
await next();
|
|
105
|
+
} catch (error) {
|
|
106
|
+
logger.error(error, 'Failed to load car rental data:');
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
};export{middleware};//# sourceMappingURL=bookingCarRentalMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookingCarRentalMiddleware.js","sources":["../../src/middlewares/bookingCarRentalMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookingDatasourcesMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/bookingDatasourcesMiddleware.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,UAAU,GAAU;;;;CAA4B,EAAE,eAAU,EAAE,SAAI,kBAmIvE,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import {config}from'../config/env-config.js';const middleware = async ({
|
|
2
|
+
context,
|
|
3
|
+
request,
|
|
4
|
+
params
|
|
5
|
+
}, dataLoader, next) => {
|
|
6
|
+
const {
|
|
7
|
+
apolloClient,
|
|
8
|
+
logger
|
|
9
|
+
} = context;
|
|
10
|
+
let bookingQuery;
|
|
11
|
+
try {
|
|
12
|
+
// Create a promise that will fetch the Booking.com data
|
|
13
|
+
const url = new URL(request.url);
|
|
14
|
+
const searchParams = url.searchParams;
|
|
15
|
+
const from = searchParams.get('from') ? new Date(searchParams.get('from')) : null;
|
|
16
|
+
const to = searchParams.get('to') ? new Date(searchParams.get('to')) : null;
|
|
17
|
+
const adults = parseInt(searchParams.get('adults') || '0', 10);
|
|
18
|
+
const children = parseInt(searchParams.get('children') || '0', 10);
|
|
19
|
+
const coordinates = searchParams.get('coordinates') ? JSON.parse(searchParams.get('coordinates')) : {};
|
|
20
|
+
const page = parseInt(searchParams.get('page') || '1', 10);
|
|
21
|
+
const infants = parseInt(searchParams.get('infants') || '0', 10);
|
|
22
|
+
const maxPrice = parseInt(searchParams.get('priceSliderValue') || '0', 10);
|
|
23
|
+
const latitude = coordinates.lat || '';
|
|
24
|
+
const longitude = coordinates.lng || '';
|
|
25
|
+
const radiusParamValue = parseInt(searchParams.get('distanceSliderValue') || '0', 10);
|
|
26
|
+
const zoom = parseInt(searchParams.get('zoom') || '12', 10);
|
|
27
|
+
// Calculate the radius based on the zoom level
|
|
28
|
+
// Assuming zoom level 12 is the closest view and 1 is the farthest
|
|
29
|
+
const calculateRadius = zoomLevel => {
|
|
30
|
+
const maxZoom = 12;
|
|
31
|
+
const minZoom = 1;
|
|
32
|
+
const minRadius = 10; // Minimum radius when fully zoomed in
|
|
33
|
+
const maxRadius = 360; // Maximum radius when fully zoomed out
|
|
34
|
+
// Linear interpolation between minRadius and maxRadius based on zoom level
|
|
35
|
+
const radius = minRadius + (maxZoom - zoomLevel) / (maxZoom - minZoom) * (maxRadius - minRadius);
|
|
36
|
+
return Math.round(Math.max(minRadius, Math.min(maxRadius, radius))); // Ensure radius is within bounds
|
|
37
|
+
};
|
|
38
|
+
const radius = calculateRadius(zoom);
|
|
39
|
+
// Parse viewport coordinates
|
|
40
|
+
let viewport = {};
|
|
41
|
+
try {
|
|
42
|
+
viewport = searchParams.get('viewport') ? JSON.parse(searchParams.get('viewport')) : null;
|
|
43
|
+
} catch (e) {
|
|
44
|
+
logger.warn('Failed to parse viewport parameter');
|
|
45
|
+
}
|
|
46
|
+
bookingQuery = new Promise(async (resolve, reject) => {
|
|
47
|
+
try {
|
|
48
|
+
const sampleParams = {
|
|
49
|
+
checkIn: from || '',
|
|
50
|
+
checkOut: to || '',
|
|
51
|
+
guest: adults + children || 1
|
|
52
|
+
};
|
|
53
|
+
const {
|
|
54
|
+
checkIn,
|
|
55
|
+
checkOut,
|
|
56
|
+
guest
|
|
57
|
+
} = sampleParams;
|
|
58
|
+
const rapidApiKey = config.BOOKING_COM_API_KEY;
|
|
59
|
+
const response = await fetch('https://booking-com15.p.rapidapi.com/api/v1/hotels/searchHotelsByCoordinates?' + new URLSearchParams({
|
|
60
|
+
latitude: latitude.toString(),
|
|
61
|
+
longitude: longitude.toString(),
|
|
62
|
+
arrival_date: from ? from.toISOString().split('T')[0] : '',
|
|
63
|
+
departure_date: to ? to.toISOString().split('T')[0] : '',
|
|
64
|
+
adults: guest.toString(),
|
|
65
|
+
page_number: page.toString(),
|
|
66
|
+
languagecode: 'en-us',
|
|
67
|
+
radius: radiusParamValue > 0 ? radiusParamValue.toString() : radius.toString(),
|
|
68
|
+
...(maxPrice > 0 ? {
|
|
69
|
+
price_max: maxPrice.toString()
|
|
70
|
+
} : {})
|
|
71
|
+
}), {
|
|
72
|
+
headers: {
|
|
73
|
+
'x-rapidapi-host': 'booking-com15.p.rapidapi.com',
|
|
74
|
+
'x-rapidapi-key': rapidApiKey
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const responseData = await response.json();
|
|
78
|
+
// Check if responseData.data is not present and responseData.message exists
|
|
79
|
+
if (!responseData.data && responseData.message) {
|
|
80
|
+
logger.error('Booking.com API error:', JSON.stringify(responseData.message));
|
|
81
|
+
// Instead of throwing, return empty results
|
|
82
|
+
const emptyResponse = {
|
|
83
|
+
data: {
|
|
84
|
+
count: 0,
|
|
85
|
+
result: []
|
|
86
|
+
},
|
|
87
|
+
pagination: {
|
|
88
|
+
currentPage: page,
|
|
89
|
+
totalPages: 0,
|
|
90
|
+
totalCount: 0
|
|
91
|
+
},
|
|
92
|
+
metadata: {
|
|
93
|
+
viewport: viewport,
|
|
94
|
+
filters: {
|
|
95
|
+
adults,
|
|
96
|
+
children,
|
|
97
|
+
infants
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
resolve(emptyResponse);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const restructuredData = {
|
|
105
|
+
...responseData,
|
|
106
|
+
pagination: {
|
|
107
|
+
currentPage: page,
|
|
108
|
+
totalPages: Math.ceil(responseData.data.count / config.BOOKING_COM_DEFAULT_PAGE_SIZE),
|
|
109
|
+
// Use the calculated totalPages
|
|
110
|
+
totalCount: responseData.data.count
|
|
111
|
+
},
|
|
112
|
+
metadata: {
|
|
113
|
+
viewport: viewport,
|
|
114
|
+
filters: {
|
|
115
|
+
adults,
|
|
116
|
+
children,
|
|
117
|
+
infants
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
data: responseData.data.result || [] // Assuming the Booking.com API returns results in 'result' field
|
|
121
|
+
};
|
|
122
|
+
resolve(restructuredData);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
reject(error);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
logger.info('Booking.com properties data loaded and cached');
|
|
128
|
+
// Ensure componentData is initialized
|
|
129
|
+
dataLoader.componentData = dataLoader.componentData || {};
|
|
130
|
+
// Store as an async function that returns the promise
|
|
131
|
+
dataLoader.componentData.bookingResults = async () => await bookingQuery;
|
|
132
|
+
await next();
|
|
133
|
+
} catch (error) {
|
|
134
|
+
logger.error(error, 'Failed to load Booking.com properties data:');
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
};export{middleware};//# sourceMappingURL=bookingDatasourcesMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookingDatasourcesMiddleware.js","sources":["../../src/middlewares/bookingDatasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasourcesMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/datasourcesMiddleware.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAU;;;;CAA4B,EAAE,eAAU,EAAE,SAAI,kBAsB9E,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const middleware = async ({
|
|
2
|
+
context,
|
|
3
|
+
request,
|
|
4
|
+
params
|
|
5
|
+
}, dataLoader, next) => {
|
|
6
|
+
const {
|
|
7
|
+
apolloClient,
|
|
8
|
+
logger
|
|
9
|
+
} = context;
|
|
10
|
+
let query1;
|
|
11
|
+
try {
|
|
12
|
+
query1 = new Promise(resolve => {
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
resolve({
|
|
15
|
+
data: 'Airbnb data'
|
|
16
|
+
});
|
|
17
|
+
}, 1000);
|
|
18
|
+
});
|
|
19
|
+
logger.info('Accommodation data loaded and cached');
|
|
20
|
+
// Ensure componentData is initialized
|
|
21
|
+
dataLoader.componentData = dataLoader.componentData || {};
|
|
22
|
+
// Await the promise to ensure it's resolved before assigning
|
|
23
|
+
dataLoader.componentData.airbnb = async () => await query1;
|
|
24
|
+
await next(); // Proceed to next middleware or route handler
|
|
25
|
+
} catch (error) {
|
|
26
|
+
logger.error(error, 'Failed to load accommodation data:');
|
|
27
|
+
// Handle errors appropriately
|
|
28
|
+
}
|
|
29
|
+
};export{middleware};//# sourceMappingURL=datasourcesMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasourcesMiddleware.js","sources":["../../src/middlewares/datasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,UAAU,GAAG,OAAO;AAC7B,EAAA,OAAA;AACA,EAAA;AACA,EAAA;AACI,CAAA,EAAA,UAAA,MAAS,KAAI;;AAEL,IAAA,YAAA;;AAER,GAAA,GAAA,OAAG;AAEH,EAAA,IAAA,MAAA;;UAGA,GAAA,IAAA,eAAwB,IAAG;gBAC3B,CAAA,MAAA;QACA,OAAA,CAAA;AAEA,UAAA,IAAM,EAAA;SACT,CAAA;MAAC,CAAA,EAAA,IAAO,CAAA;AACL,IAAA,CAAA,CAAA;UACA,CAAA,IAAA,CAAA,sCAA8B,CAAA;;AAEtC,IAAE,UAAA,CAAA,aAAA,GAAA,UAAA,CAAA,aAAA,IAAA,EAAA;;;;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { middleware as airbnbDatasourcesMiddleware } from './airbnbDatasourcesMiddleware';
|
|
2
|
+
export { middleware as bookingCarRentalDatasourcesMiddleware } from './bookingCarRentalMiddleware';
|
|
3
|
+
export { middleware as bookingDatasourcesMiddleware } from './bookingDatasourcesMiddleware';
|
|
4
|
+
export { middleware as datasourcesMiddleware } from './datasourcesMiddleware';
|
|
5
|
+
export { middleware as pricelineDatasourcesMiddleware } from './pricelineDatasourcesMiddleware';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAE,UAAU,IAAI,qCAAqC,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,UAAU,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,IAAI,8BAA8B,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricelineDatasourcesMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/pricelineDatasourcesMiddleware.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,UAAU,GAAU;;;;CAA4B,EAAE,eAAU,EAAE,SAAI,kBAkGvE,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import {config}from'../config/env-config.js';import axios from'axios';const middleware = async ({
|
|
2
|
+
context,
|
|
3
|
+
request,
|
|
4
|
+
params
|
|
5
|
+
}, dataLoader, next) => {
|
|
6
|
+
const {
|
|
7
|
+
logger
|
|
8
|
+
} = context;
|
|
9
|
+
let pricelineQuery;
|
|
10
|
+
try {
|
|
11
|
+
const url = new URL(request.url);
|
|
12
|
+
const searchParams = url.searchParams;
|
|
13
|
+
const coordinates = searchParams.get('coordinates') ? JSON.parse(searchParams.get('coordinates')) : {};
|
|
14
|
+
const latitude = coordinates?.lat || JSON.parse(config.DEFAULT_COORDINATES).lat;
|
|
15
|
+
const longitude = coordinates?.lng || JSON.parse(config.DEFAULT_COORDINATES).lng;
|
|
16
|
+
const page = parseInt(searchParams.get('page') || '1', 10);
|
|
17
|
+
const limit = 100;
|
|
18
|
+
const offset = page * limit;
|
|
19
|
+
const from = searchParams.get('from') ? new Date(searchParams.get('from')) : null;
|
|
20
|
+
const to = searchParams.get('to') ? new Date(searchParams.get('to')) : null;
|
|
21
|
+
pricelineQuery = new Promise(async resolve => {
|
|
22
|
+
try {
|
|
23
|
+
const options = {
|
|
24
|
+
method: 'GET',
|
|
25
|
+
url: 'https://priceline-com-provider.p.rapidapi.com/v2/hotels/expressResults',
|
|
26
|
+
params: {
|
|
27
|
+
limit: offset,
|
|
28
|
+
check_in: from ? from.toISOString().split('T')[0] : '',
|
|
29
|
+
check_out: to ? to.toISOString().split('T')[0] : '',
|
|
30
|
+
latitude: latitude,
|
|
31
|
+
longitude: longitude,
|
|
32
|
+
output_version: '3'
|
|
33
|
+
},
|
|
34
|
+
headers: {
|
|
35
|
+
'x-rapidapi-key': config.PRICELINE_API_KEY,
|
|
36
|
+
'x-rapidapi-host': 'priceline-com-provider.p.rapidapi.com',
|
|
37
|
+
Accept: 'application/json'
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const response = await axios.request(options);
|
|
41
|
+
// Handle API error response
|
|
42
|
+
if (!response.data || response.data['getHotelExpress.Results'].error) {
|
|
43
|
+
logger.error('Priceline API error:', response.data?.['getHotelExpress.Results']?.error || 'Unknown error');
|
|
44
|
+
resolve({
|
|
45
|
+
pagination: {
|
|
46
|
+
currentPage: page,
|
|
47
|
+
totalCount: 0,
|
|
48
|
+
totalPages: 0
|
|
49
|
+
},
|
|
50
|
+
data: []
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const restructuredData = {
|
|
55
|
+
...response.data,
|
|
56
|
+
pagination: {
|
|
57
|
+
currentPage: page,
|
|
58
|
+
totalCount: response.data['getHotelExpress.Results'].results.results_data.rate_count,
|
|
59
|
+
totalPages: Math.ceil(response.data['getHotelExpress.Results'].results.results_data.rate_count / limit)
|
|
60
|
+
},
|
|
61
|
+
data: response.data['getHotelExpress.Results'].results?.hotel_data || []
|
|
62
|
+
};
|
|
63
|
+
resolve(restructuredData);
|
|
64
|
+
} catch (error) {
|
|
65
|
+
// Handle any other errors (network, parsing, etc.)
|
|
66
|
+
logger.error('Error in Priceline API request:', error);
|
|
67
|
+
resolve({
|
|
68
|
+
pagination: {
|
|
69
|
+
currentPage: page,
|
|
70
|
+
totalCount: 0,
|
|
71
|
+
totalPages: 0
|
|
72
|
+
},
|
|
73
|
+
data: []
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
logger.info('Priceline nearby hotels data loaded and cached');
|
|
78
|
+
dataLoader.componentData = dataLoader.componentData || {};
|
|
79
|
+
dataLoader.componentData.pricelineResults = async () => await pricelineQuery;
|
|
80
|
+
await next();
|
|
81
|
+
} catch (error) {
|
|
82
|
+
// Handle setup errors
|
|
83
|
+
logger.error('Failed to load Priceline nearby hotels data:', error);
|
|
84
|
+
dataLoader.componentData = dataLoader.componentData || {};
|
|
85
|
+
dataLoader.componentData.pricelineResults = async () => ({
|
|
86
|
+
pagination: {
|
|
87
|
+
currentPage: 1,
|
|
88
|
+
totalCount: 0,
|
|
89
|
+
totalPages: 0
|
|
90
|
+
},
|
|
91
|
+
data: []
|
|
92
|
+
});
|
|
93
|
+
await next();
|
|
94
|
+
}
|
|
95
|
+
};export{middleware};//# sourceMappingURL=pricelineDatasourcesMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pricelineDatasourcesMiddleware.js","sources":["../../src/middlewares/pricelineDatasourcesMiddleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/lib/routes.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@admin-layout/tailwind-travel-pro",
|
|
3
|
+
"version": "11.2.1-alpha.1",
|
|
4
|
+
"description": "Sample core for higher packages to depend on",
|
|
5
|
+
"license": "ISC",
|
|
6
|
+
"author": "CDMBase LLC",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"module": "lib/index.js",
|
|
10
|
+
"typings": "lib/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "yarn build:clean && yarn build:lib",
|
|
13
|
+
"build:clean": "rimraf lib",
|
|
14
|
+
"build:lib": "rollup -c rollup.config.mjs",
|
|
15
|
+
"build:lib:watch": "yarn build:lib -- --watch",
|
|
16
|
+
"jest": "./node_modules/.bin/jest",
|
|
17
|
+
"prepublish": "yarn build",
|
|
18
|
+
"test": "cross-env ENV_FILE=../../config/test/test.env jest",
|
|
19
|
+
"test:debug": "npm test -- --runInBand",
|
|
20
|
+
"test:watch": "npm test -- --watch",
|
|
21
|
+
"watch": "yarn build:lib:watch"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@admin-layout/tailwind-design-pro": "11.2.1-alpha.1",
|
|
25
|
+
"@admin-layout/tailwind-ui": "11.2.1-alpha.1",
|
|
26
|
+
"@cdmbase/react-splide": "^0.7.12",
|
|
27
|
+
"@react-google-maps/api": "^2.20.7",
|
|
28
|
+
"@vis.gl/react-google-maps": "^1.5.4",
|
|
29
|
+
"react-infinite-scroll-component": "^6.1.0",
|
|
30
|
+
"react-rating": "^2.0.5"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@adminide-stack/extension-api": "^13.0.1-alpha.1",
|
|
34
|
+
"@tailwindcss/aspect-ratio": "^0.4.2",
|
|
35
|
+
"@tailwindcss/forms": "^0.5.4",
|
|
36
|
+
"@tailwindcss/typography": "^0.5.9",
|
|
37
|
+
"tailwindcss": "^3.3.3"
|
|
38
|
+
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"inversify": "*"
|
|
41
|
+
},
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
},
|
|
45
|
+
"typescript": {
|
|
46
|
+
"definition": "lib/index.d.ts"
|
|
47
|
+
},
|
|
48
|
+
"gitHead": "07c2534a0ba6f7955e1a718f54aa5e26b78cbacc"
|
|
49
|
+
}
|