Files
fission-console/examples/big-suite/code/ruby-product/main.rb
T
Naeel 01df1498d6 feat: big-suite terraform example + provider nodejs zip fix
- examples/big-suite: E-Commerce 10 functions, 6 layers, real depends_on
- provider: nodejs packages now wrapped in ESM zip (buildJSDeployZip)
- provider: loadPackageLiteral reads raw file, nodejs zip via source_dir
- all 10 functions verified working: python/node/ruby/go runtimes
2026-04-20 11:38:45 +03:00

30 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require "json"
PRODUCTS = [
{ id: "p-001", name: "Laptop Pro 15", price: 1299.99, category: "electronics", stock: 14 },
{ id: "p-002", name: "Wireless Mouse", price: 29.99, category: "electronics", stock: 203 },
{ id: "p-003", name: "Standing Desk", price: 549.00, category: "furniture", stock: 7 },
{ id: "p-004", name: "USB-C Hub 7-in-1", price: 49.99, category: "electronics", stock: 88 },
{ id: "p-005", name: "Ergonomic Chair", price: 399.00, category: "furniture", stock: 3 },
{ id: "p-006", name: "Monitor 4K 27\"", price: 699.00, category: "electronics", stock: 22 },
{ id: "p-007", name: "Notebook A5", price: 4.99, category: "stationery", stock: 500 },
{ id: "p-008", name: "Pen Set 12pc", price: 9.99, category: "stationery", stock: 320 },
].freeze
def handler
# Простая фильтрация по category (query string не доступен в v1 Perl-style,
# но для Ruby v3 env возвращаем весь каталог)
total = PRODUCTS.length
in_stock = PRODUCTS.count { |p| p[:stock] > 0 }
by_cat = PRODUCTS.group_by { |p| p[:category] }.transform_values(&:length)
{
status: "ok",
total: total,
in_stock: in_stock,
by_category: by_cat,
products: PRODUCTS,
}.to_json
end