Skip to content

Commit ca1bd8e

Browse files
committed
feat: updated examples functions
1 parent 53a49a7 commit ca1bd8e

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

examples/Dockerfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# FROM ghcr.io/ql4b/lambda-shell-runtime:0.1.0-develop.10-full
2-
# FROM lambda-shell-runtime:micro
3-
# FROM ghcr.io/ql4b/lambda-shell-runtime:0.1.0-develop.10-slim
41
FROM ghcr.io/ql4b/lambda-shell-runtime:0.1.0-develop.11-tiny
52

63
WORKDIR /var/task

examples/rrelay.sh

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -149,43 +149,41 @@ function create_basket () {
149149

150150
function create_booking () {
151151
local variables=$(echo "$1" | jq -c)
152-
# {
153-
# "basketId": "2f3e14fa-c78a-4906-b021-d5ee4222e0db",
154-
# "createBooking": {
155-
# "adults": 1,
156-
# "children": 0,
157-
# "infants": 0,
158-
# "teens": 0,
159-
# "flights": [
160-
# {
161-
# "fareKey": "2FGVMXHMTBPQ73LTTFGTOXOWCG23NTHUGQ7TCVFLESZKDQLXBEM7ENS336VRY76Z6HBQD7JC5UCFVDAM7CXNPGZCKD3A6SSQQLKOLF7HAGIG2KXSIVBQUBOWNEJOWJ7SE3KKZ3QV6LNPMI3KHKU5CE62TOJBWMEITNYPFA7ICELQJXW2RHBE6IGSIQDKHERC35QRM67MAHVXOLBXQNXPL7WOZPYQNG4L3YIUWW6KFRBJGON3QLUYETUFHICGF7PKYLA6Y7QIREYGGRZWDOYDFQJLJHDZ4AHEHHUZ7LAGXQHRNOAU4JMCABKRO4DED2HTJYP2HHQQOASYRENHOQ26SCMY43Q445DNVOPMB2A",
162-
# "flightKey": "FR~7763~ ~~ALC~10/10/2025 14:30~DUB~10/10/2025 16:25~~",
163-
# "fareOption": null
164-
# }
165-
# ],
166-
# "discount": 0,
167-
# "promoCode": ""
168-
# },
169-
# "culture": "it-it"
170-
# }
171152
local url="https://www.ryanair.com/api/basketapi/it-it/graphql"
172153
local m_create_booking='{"query":"mutation CreateBooking($basketId: String, $createBooking: CreateBookingInput!, $culture: String!) {\n createBooking(basketId: $basketId, createBooking: $createBooking, culture: $culture) {\n ...BasketCommon\n }\n}\n\n\nfragment TotalCommon on PriceType {\n total\n}\n\nfragment PriceCommon on PriceType {\n amountWithTaxes\n total\n discount\n discountCode\n}\n\nfragment ComponentCommon on ComponentType {\n id\n parentId\n code\n type\n quantity\n removable\n hidden\n price {\n ...PriceCommon\n }\n}\n\nfragment VariantUnionAddOn on VariantUnionType {\n ... on AddOn {\n itemId\n provider\n paxNumber\n pax\n src\n start\n end\n }\n}\n\nfragment VariantUnionFare on VariantUnionType {\n ... on Fare {\n fareOption\n journeyNumber\n }\n}\n\nfragment VariantUnionSsr on VariantUnionType {\n ... on Ssr {\n journeyNumber\n paxNumber\n segmentNumber\n }\n}\n\nfragment VariantUnionSeat on VariantUnionType {\n ... on Seat {\n paxNumber\n journeyNumber\n segmentNumber\n seatType\n designator\n childSeatsWithAdult\n hasAdditionalSeatCost\n primeIncluded\n }\n}\n\nfragment VariantUnionBundle on VariantUnionType {\n ... on Bundle {\n journeyNumber\n segmentNumber\n }\n}\n\nfragment VariantUnionParkingAddOn on VariantUnionType {\n ... on ParkingAddOn {\n carParkName\n itemId\n provider\n paxNumber\n pax\n src\n start\n end\n }\n}\n\nfragment VariantUnionVoucher on VariantUnionType {\n ... on Voucher {\n firstName\n lastName\n email\n }\n}\n\nfragment VariantUnionPhysicalVoucher on VariantUnionType {\n ... on PhysicalVoucher {\n sequenceNumber\n firstName\n lastName\n address1\n address2\n city\n postalCode\n country\n countryName\n scheduleDate\n message\n }\n}\n\nfragment VariantUnionDigitalVoucher on VariantUnionType {\n ... on DigitalVoucher {\n sequenceNumber\n firstName\n lastName\n email\n theme\n scheduleDate\n scheduleTime\n message\n }\n}\n\nfragment VariantUnionPhysicalVoucherShippingAddress on VariantUnionType {\n ... on PhyscialVoucherShippingAddress {\n address1\n address2\n city\n postalCode\n country\n countryName\n firstName\n lastName\n }\n}\n\nfragment VariantUnionChangePaxType on VariantUnionType {\n ... on ChangePassengerType {\n passengerNumber\n invalidJourneys {\n journeyNumber\n passengers {\n passengerNumber\n passengerType\n }\n }\n mandatorySeatPricesWithoutDiscount {\n journeyNumber\n passengerNumber\n feePriceWithoutDiscount\n cost\n }\n }\n}\n\nfragment VariantUnionAddInfant on VariantUnionType {\n ... on AddInfant {\n journeyNumber\n invalidPassengers {\n passengerNumber\n passengerType\n }\n segmentNumber\n paxNumber\n }\n}\n\nfragment VariantGroundTransfer on VariantUnionType {\n ... on GroundTransfer {\n locationPickUp\n locationDropOff\n routeType\n startDate\n endDate\n itemId\n location\n }\n}\n\nfragment GettingTherePillar on GettingThereType {\n isPrime\n price {\n ...TotalCommon\n }\n journeys {\n ... on JourneyType {\n arrival\n departure\n destination\n duration\n fareClass\n fareKey\n fareOption\n flightKey\n flightNumber\n isConnecting\n isDomestic\n journeyNum\n origin\n changeInfo {\n ... on ChangeInfoType {\n isChangeable\n freeMove\n isChanged\n }\n }\n segments {\n ... on SegmentType {\n aircraft\n arrival\n departure\n destination\n duration\n hasGovernmentTax\n flightNumber\n segmentNum\n origin\n originCountry\n destinationCountry\n }\n }\n }\n }\n discounts {\n ... on DiscountType {\n amount\n code\n journeyNum\n percentage\n zone\n description\n qty\n }\n }\n taxes {\n ... on TaxType {\n amount\n code\n journeyNum\n percentage\n zone\n }\n }\n vouchers {\n ... on VoucherType {\n amount\n code\n status\n accountNumber\n voucherBasisCode\n }\n }\n components {\n ... on ComponentType {\n ...ComponentCommon\n variant {\n ...VariantUnionAddOn\n ...VariantUnionFare\n ...VariantUnionSsr\n ...VariantUnionSeat\n ...VariantGroundTransfer\n ...VariantUnionBundle\n ...VariantUnionParkingAddOn\n ...VariantUnionVoucher\n ...VariantUnionDigitalVoucher\n ...VariantUnionPhysicalVoucher\n ...VariantUnionPhysicalVoucherShippingAddress\n ...VariantUnionChangePaxType\n ...VariantUnionAddInfant\n }\n }\n }\n messages {\n ... on MessageType {\n type\n journeyNum\n key\n message\n }\n }\n}\n\nfragment PayLaterCommon on PriceType {\n total\n}\n\nfragment BasketCommon on BasketType {\n id\n tripId\n dotrezSessionId\n currency\n gettingThere {\n ...GettingTherePillar\n }\n price {\n ...TotalCommon\n }\n payLater {\n ...PayLaterCommon\n }\n totalToPay\n}\n\n","variables":{"basketId":"2f3e14fa-c78a-4906-b021-d5ee4222e0db","createBooking":{"adults":1,"children":0,"infants":0,"teens":0,"flights":[{"fareKey":"2FGVMXHMTBPQ73LTTFGTOXOWCG23NTHUGQ7TCVFLESZKDQLXBEM7ENS336VRY76Z6HBQD7JC5UCFVDAM7CXNPGZCKD3A6SSQQLKOLF7HAGIG2KXSIVBQUBOWNEJOWJ7SE3KKZ3QV6LNPMI3KHKU5CE62TOJBWMEITNYPFA7ICELQJXW2RHBE6IGSIQDKHERC35QRM67MAHVXOLBXQNXPL7WOZPYQNG4L3YIUWW6KFRBJGON3QLUYETUFHICGF7PKYLA6Y7QIREYGGRZWDOYDFQJLJHDZ4AHEHHUZ7LAGXQHRNOAU4JMCABKRO4DED2HTJYP2HHQQOASYRENHOQ26SCMY43Q445DNVOPMB2A","flightKey":"FR~7763~ ~~ALC~10/10/2025 14:30~DUB~10/10/2025 16:25~~","fareOption":null}],"discount":0,"promoCode":""},"culture":"it-it"},"operationName":"CreateBooking"}'
173154
local data=$(
174155
jq -rcn --arg m_create_booking "$m_create_booking" '$m_create_booking|fromjson' \
175156
| jq -rc --arg variables "$variables" '. + { variables: $variables|fromjson }'
176157
)
177-
local output=$(http-cli \
158+
local headers_file=$(mktemp)
159+
local response=$(http-cli \
178160
--silent \
179161
--user-agent "$ua" \
180162
--header 'accept: application/json, text/plain, */*' \
181163
--cookie "fr-correlation-id=$correlation_id" \
182164
--data "$data" \
183165
--url "$url" \
184-
-- -D "$JWT_HANDLER"
166+
-D "$headers_file" \
167+
-D code
185168
)
186-
export JWT=$(cat "$JWT_HANDLER" | grep 'jwt' | awk '{ print $2 }')
187-
echo "$output" | jq
188-
# echo "$JWT" >&2
169+
170+
# echo "$response" >&2
171+
code=$(echo "$response" | grep '^server=' | cut -d '=' -f2)
172+
173+
if [[ $code -ne 200 ]];then
174+
echo "error" >&2
175+
echo "$response" >&2
176+
exit 1
177+
fi
178+
179+
local jwt=$(cat "$headers_file" | grep '^jwt: ' | cut -d ' ' -f2)
180+
local body=$(echo "$response" | grep -v "^server=" | grep -v "^proxy=" | jq )
181+
182+
local output=$(jq -n --arg jwt "$jwt" --argjson body "$body" '{
183+
body: $body ,
184+
jwt: $jwt
185+
}')
186+
echo "$output"
189187
}
190188

191189
function commit_booking () {

examples/run

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
source $(realpath $(dirname $0))/rrelay.sh
44

5-
request='{"adults":1,"children":1,"infants":1,"teens":0,"origin":"NAP","destination":"BCN","dateOut":"2025-07-13"}'
5+
request='{"adults":2,"children":1,"infants":0,"teens":0,"origin":"FCO","destination":"CTA","dateOut":"2025-07-15"}'
66
echo $request >&2
77
correlation_id=$(uuidgen | tr '[:upper:]' '[:lower:]')
88
# export USER_AGENT=$(randua)
@@ -22,9 +22,17 @@ culture=$(dashed_market "$market")
2222
# echo "$culture" >&2
2323
variables=$(booking_variables "$basketID" "$request" "$flight")
2424
# echo "$variables" | jq >&2
25-
export JWT_HANDLER=$(mktemp)
26-
create_booking "$variables"
27-
echo "$JWT" >&2
25+
booking=$(create_booking "$variables")
26+
27+
if [ $? -ne 0 ]; then
28+
echo "Error creating booking: $booking" >&2
29+
exit 1
30+
fi
31+
export JWT=$(echo "$booking" | jq -r .jwt)
32+
data=$(echo "$booking" | jq -r .body)
33+
echo "$data | jq '.data.createBooking|{ currency, price }'"
34+
35+
# echo "$JWT" >&2
2836
booking=$(commit_booking "$basketID" | jq .data.commitBooking)
2937
echo "$booking" | jq >&2
3038
data=$(catalog_products "$basketID" "$JWT")

0 commit comments

Comments
 (0)