67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -u
|
|
set -o pipefail
|
|
|
|
BASE_URL="${BASE_URL:-http://127.0.0.1:8020}"
|
|
PGHOST="${PGHOST:-192.168.1.110}"
|
|
PGUSER="${PGUSER:-clientflow}"
|
|
PGDATABASE="${PGDATABASE:-clientflow}"
|
|
|
|
if [ -z "${PGPASSWORD:-}" ]; then
|
|
echo "Define PGPASSWORD antes de correr."
|
|
exit 2
|
|
fi
|
|
|
|
code() {
|
|
local method="$1"
|
|
local url="$2"
|
|
shift 2
|
|
curl -s -o /dev/null -w "%{http_code}\n" -X "$method" "$url" "$@"
|
|
}
|
|
|
|
echo "== Odoo ClientFlow integration test =="
|
|
|
|
echo -n "GET /integrations -> "
|
|
code GET "$BASE_URL/integrations"
|
|
|
|
echo -n "POST /integrations/odoo/test -> "
|
|
code POST "$BASE_URL/integrations/odoo/test" -H "Content-Type: application/x-www-form-urlencoded"
|
|
|
|
echo -n "POST /integrations/odoo/sync-products -> "
|
|
code POST "$BASE_URL/integrations/odoo/sync-products" -H "Content-Type: application/x-www-form-urlencoded"
|
|
|
|
echo
|
|
echo "Produtos com metadata Odoo:"
|
|
PGPASSWORD="$PGPASSWORD" psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -c "
|
|
SELECT
|
|
count(*) FILTER (WHERE metadata ? 'odoo') AS synced_products,
|
|
count(*) FILTER (WHERE COALESCE((metadata->'odoo'->>'has_bom')::boolean, false)) AS with_bom,
|
|
count(*) FILTER (WHERE COALESCE((metadata->'odoo'->'stock'->>'available')::numeric, 0) > 0) AS with_available_stock,
|
|
max(metadata->'odoo'->>'last_synced_at') AS last_synced_at
|
|
FROM products;
|
|
"
|
|
|
|
echo
|
|
echo "Amostra:"
|
|
PGPASSWORD="$PGPASSWORD" psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -c "
|
|
SELECT
|
|
sku,
|
|
name,
|
|
metadata->'odoo'->>'product_id' AS odoo_id,
|
|
metadata->'odoo'->'stock'->>'available' AS available,
|
|
metadata->'odoo'->>'has_bom' AS has_bom
|
|
FROM products
|
|
WHERE metadata ? 'odoo'
|
|
ORDER BY name
|
|
LIMIT 15;
|
|
"
|
|
|
|
echo
|
|
echo "Sync runs:"
|
|
PGPASSWORD="$PGPASSWORD" psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -c "
|
|
SELECT sync_type, status, total_seen, total_changed, total_errors, message, started_at, finished_at
|
|
FROM odoo_sync_runs
|
|
ORDER BY started_at DESC
|
|
LIMIT 10;
|
|
"
|