feat: read BusProNet base data from the MyE&P API

This commit is contained in:
Björn Fromme authored and Björn Fromme committed 2026-09-29 11:08:04 +02:00
1 parent 1505f9b50b
commit 2e9328fc51
37 files changed
+2302 -148

No files matched your search

+16
View File
@@ -28,6 +28,22 @@ framework:
router:
default_uri: '%env(APP_BASE_URI)%'
# Every call to the sibling MyE&P application, both the token request and the API
# itself. Paths are given relative to the base uri, so without a leading slash.
http_client:
scoped_clients:
myep.client:
base_uri: '%env(MYEP_API_BASE_URL)%'
timeout: 10
max_duration: 30
headers:
Accept: application/json
retry_failed:
max_retries: 2
# 401 is deliberately absent: it needs the cached token dropped
# before the retry, which App\MyEp\Api\ApiClient does itself.
http_codes: [423, 425, 429, 500, 502, 503, 504]
when@test:
framework:
test: true
+17 -4
View File
@@ -3,6 +3,7 @@ monolog:
- deprecation
- bpn
- saas
- myep
- audit
- api
@@ -13,7 +14,7 @@ monolog:
handler: exceptions
excluded_http_codes: [404, 405]
buffer_size: 50
channels: ["!bpn", "!saas", "!audit", "!api"]
channels: ["!bpn", "!saas", "!myep", "!audit", "!api"]
exceptions:
type: rotating_file
path: "%kernel.logs_dir%/framework.%kernel.environment%.log"
@@ -31,6 +32,12 @@ monolog:
path: '%kernel.logs_dir%/saas.%kernel.environment%.log'
max_files: 5
level: info
myep:
channels: ["myep"]
type: rotating_file
path: '%kernel.logs_dir%/myep.%kernel.environment%.log'
max_files: 5
level: info
audit:
channels: [ "audit" ]
type: rotating_file
@@ -52,7 +59,7 @@ monolog:
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!bpn", "!saas", "!api", "!doctrine", "!console"]
channels: ["!event", "!bpn", "!saas", "!myep", "!api", "!doctrine", "!console"]
when@dev:
monolog:
@@ -89,7 +96,7 @@ when@prod:
handler: exceptions
excluded_http_codes: [404, 405]
buffer_size: 50
channels: ["!bpn", "!saas", "!audit", "!api"]
channels: ["!bpn", "!saas", "!myep", "!audit", "!api"]
exceptions:
type: rotating_file
path: "%kernel.logs_dir%/framework.%kernel.environment%.log"
@@ -107,6 +114,12 @@ when@prod:
path: '%kernel.logs_dir%/saas.%kernel.environment%.log'
max_files: 5
level: info
myep:
channels: ["myep"]
type: rotating_file
path: '%kernel.logs_dir%/myep.%kernel.environment%.log'
max_files: 5
level: info
audit:
channels: [ "audit" ]
type: rotating_file
@@ -126,4 +139,4 @@ when@prod:
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine", "!bpn", "!saas", "!audit", "!api"]
channels: ["!event", "!doctrine", "!bpn", "!saas", "!myep", "!audit", "!api"]
+4 -2
View File
@@ -15,8 +15,10 @@ zenstruck_schedule:
when@prod:
zenstruck_schedule:
tasks:
# 03:20 rather than 03:00: MyE&P mirrors from BusProNet hourly overnight, on the
# hour, so an import at 03:00 can read a half written export.
- task: app:bpn-import
frequency: '0 3 * * *'
frequency: '20 3 * * *'
description: "Imports dates, products and hotels from BusProNet"
- task: app:cron
@@ -46,7 +48,7 @@ when@staging:
tasks:
- task: app:bpn-import
frequency: '30 3 * * *'
frequency: '50 3 * * *'
description: "Imports dates, products and hotels from BusProNet"
- task: app:cron