Advanced Examples
Real-world OQL patterns combining multiple verbs, chains, and site mode.
Auth-protected REST API
(* Site Mode — index.oql *)
(* Verify session on every request *)
SESSION !REQUEST(header:x-session-token) SET ?user
AFTER IF ?user IS NULL
OPEN NEST
STATUS 401
AFTER HEADER "Content-Type" AS "application/json"
AFTER EMIT `{"error":"Unauthorized"}`
AFTER EXIT ALL
CLOSE NEST
(* Route dispatch *)
ELSE IF !REQUEST(path) IS EQUAL TO "/api/me"
OPEN NEST
HEADER "Content-Type" AS "application/json"
AFTER CAST ?user AS "json" SET ?json_str
AFTER EMIT ?json_str
CLOSE NEST
ELSE OPEN NEST STATUS 404 CLOSE NEST
Rate-limited image resize API
(* Check rate limit — 10 resizes per 60s per IP *)
GEOIP ADDRESS SET ?ip
AFTER CACHE "resize_rate:" & ?ip SET ?count
AFTER IF ?count IS NOT NULL
OPEN NEST
IF ?count IS GREATER THAN OR EQUAL TO 10
OPEN NEST
STATUS 429
AFTER EMIT "Rate limit exceeded"
AFTER EXIT ALL
CLOSE NEST
CLOSE NEST
AFTER CACHE CALCULATE "(?count + 1)" AS "resize_rate:" & ?ip ON "60"
(* Process image *)
PARSE JSON !REQUEST(body) SET ?body
AFTER FETCH ?body(url) INTO "/root/tmp/" & UUID & ".jpg" SET ?path
AFTER IMAGE LOAD ?path SET ?img
AFTER RESIZE ?img TO ?body(size) SET ?resized
AFTER SHARE ?resized SET ?url
AFTER REMOVE ?path
AFTER HEADER "Content-Type" AS "application/json"
AFTER EMIT `{"url":"` & ?url & `"}`
Product catalogue with cache
CACHE "products_v2" SET ?cached
AFTER IF ?cached IS NOT NULL
OPEN NEST
PARSE JSON ?cached SET ?products
AFTER EMIT ?products
CLOSE NEST
ELSE
OPEN NEST
QUERY "products" FROM "shop"
WHERE in_stock IS EQUAL TO true
SORT BY "name"
SET ?products
CLOSE NEST
AFTER CAST ?products AS "json" SET ?json_str
AFTER CACHE ?json_str AS "products_v2" ON "300"
AFTER EMIT ?products
Parallel competitor price check
FETCH "https://api.competitor1.com/prices/widget" SET ?p1
AND FETCH "https://api.competitor2.com/prices/widget" SET ?p2
AND QUERY "products" FROM "shop" WHERE sku IS EQUAL TO "WIDGET-01" LIMIT 1 SET ?mine
AFTER NEW JSON OBJECT
OPEN NEST
SET "ours" AS ?mine(price)
AND SET "comp1" AS ?p1(price)
AND SET "comp2" AS ?p2(price)
AND SET "cheapest" AS (CALCULATE "min(min(?p1(price), ?p2(price)), ?mine(price))")
CLOSE NEST
SET ?report
AFTER EMIT ?report
Daily PDF report via CRON
DEFINE CRON "daily-sales-pdf" ON SCHEDULE "0 7 * * *"
OPEN NEST
TIME NOW AS "date" SET ?today
AFTER QUERY "orders" FROM "shop"
WHERE created_date IS EQUAL TO ?today
SORT BY "amount" FORMAT "desc"
SET ?orders
AFTER LENGTH ?orders SET ?count
AFTER CALCULATE "0" SET ?total
AFTER FOREACH ?orders AS ?o
OPEN NEST
CALCULATE "?total + ?o(amount)" SET ?total
CLOSE NEST
AFTER DOC CREATE AS "pdf" INTO "/root/reports/sales_" & ?today & ".pdf"
OPEN NEST
EMIT `
Sales Report — ` & ?today & `
` AFTER EMIT `Orders: ` & ?count & ` | Total: R` & ?total & `
` CLOSE NEST SET ?pdf AFTER SHARE ?pdf SET ?url AFTER EMAIL `Sales report for ` & ?today & `: ` & ?url TO "reports@myshop.com" WITH "Daily Sales Report — " & ?today CLOSE NEST