#!/usr/bin/env bash # POLITRAN API v1 — postup zadavatele přes curl. Vyžaduje jq. set -euo pipefail BASE="${POLITRAN_API_BASE:-https://politran.cz/api/v1}" TOKEN="${POLITRAN_API_TOKEN:?export POLITRAN_API_TOKEN=...}" H=(-H "Authorization: Bearer $TOKEN" -H "Accept: application/json") echo "== 1. Kdo jsem"; curl -sS "${H[@]}" "$BASE/me" | jq '.data | {side, organisation: .organisation.name, scopes: .token.scopes}' echo "== 2. Vydavatelé"; curl -sS "${H[@]}" "$BASE/publishers" | jq '.data[:5]' PUBLISHER_ID="${PUBLISHER_ID:-$(curl -sS "${H[@]}" "$BASE/publishers" | jq '.data[0].id')}" echo "== 3. Povinná pole před odesláním" curl -sS "${H[@]}" "$BASE/notice-fields" | jq -r '.data[] | select(.required_before_send) | "\(.key)\t\(.type)\t\(.label)"' echo "== 4. Založení konceptu (idempotentně)" KEY="example-$(date +%s)" NOTICE=$(curl -sS "${H[@]}" -H "Content-Type: application/json" -H "Idempotency-Key: $KEY" \ -d "{\"publisher_org_id\": $PUBLISHER_ID, \"campaign_start_date\": \"2026-10-01\", \"campaign_end_date\": \"2026-10-31\", \"controlling_same_as_advertiser\": true, \"payer_source\": \"advertiser\", \"funding_finance\": \"private\", \"funding_source\": \"Dary členů\", \"complaint_mechanism\": \"https://example.com/stiznosti\", \"election_relation_type\": \"none\"}" \ "$BASE/notices") echo "$NOTICE" | jq '.data | {id, short_code, status, allowed_actions}' ID=$(echo "$NOTICE" | jq '.data.id') echo "== 5. Kreativa (vytvoří 1×1 PNG)" printf '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08\x06\x00\x00\x00\x1f\x15\xc4\x89\x00\x00\x00\rIDATx\x9cc\xf8\xff\xff?\x00\x05\xfe\x02\xfe\xa7\x35\x81\x84\x00\x00\x00\x00IEND\xaeB`\x82' > /tmp/politran-1px.png curl -sS "${H[@]}" -F "file=@/tmp/politran-1px.png" "$BASE/notices/$ID/creatives" | jq '.data | {id, file_type, download_url}' echo "== 6. Odeslání vydavateli (422 = chybí povinná pole)" curl -sS "${H[@]}" -X POST "$BASE/notices/$ID/send-to-publisher" | jq '.data.status // .error' echo "== 7. Změny od poslední synchronizace" SINCE="$(date -u -v-1H +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)" curl -sS "${H[@]}" "$BASE/notices?updated_since=$SINCE&sort=updated_at" | jq '.data[] | {id, short_code, status, updated_at}'