feat(nsd-adapter): REST-клиент ИШ НРД + маршрутизация типов пакетов
- internal/nsdadapter/igw/client.go: REST-клиент ИШ (SendPackage, GetStatus, ListIncoming) с base64-JSON, ретраями на 5xx, 4xx без ретраев - internal/nsdadapter/router.go: маршрутизация MessageKind -> PackageType ЭДО (#M2MTR, #M2MTD, #M2MER, SUBBR/SUBER/SUB16, Assets_investment) - internal/nsdadapter/sender.go: реализация m2mcore.NSDSender (Send/SendDecision) через REST ИШ, сериализация Request/Decision в windows-1251 - internal/nsdadapter/config.go: профили guest/test3/prod × gost/rsa (URL ИШ, канал, контейнер ключа, retry) - internal/nsdadapter/onyx/onyx.go: скелет резервного канала WS ONYX (ждёт PR-6 crypto-service для подписи) - cmd/nsd-adapter/main.go: HTTP /healthz + фоновый поллер входящих по типам ЭДО; idle-режим без BJ_NSD_PROFILE make ci зелёный. Без внешних Go-зависимостей. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
// Package onyx — резервный канал к НРД через WS ONYX. На M1 скелет;
|
||||
// реальная реализация — после PR-6 (crypto-service): подпись пакета
|
||||
// требует КриптоПро JCP, которой пока нет.
|
||||
package onyx
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"git.zetit.ru/zuevav/Bridge-and-Join-s/internal/m2m"
|
||||
)
|
||||
|
||||
// ErrNotImplemented возвращается из всех методов скелета.
|
||||
var ErrNotImplemented = errors.New("nsdadapter/onyx: не реализовано (ждём PR-6 crypto-service)")
|
||||
|
||||
// Client — SOAP-клиент к OnyxEdoWSService. Заглушка.
|
||||
type Client struct {
|
||||
BaseURL string
|
||||
}
|
||||
|
||||
// Send отправляет подписанный M2MTransferRequest напрямую через WS ONYX.
|
||||
// TODO(PR-6): подписать пакет через crypto-service по UDS, упаковать в
|
||||
// SOAP envelope, отправить.
|
||||
func (Client) Send(_ context.Context, _ *m2m.M2MTransferRequest) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
|
||||
// SendDecision отправляет подписанное M2MTransferDecision.
|
||||
// TODO(PR-6): подписать через crypto-service.
|
||||
func (Client) SendDecision(_ context.Context, _ *m2m.M2MTransferDecision) error {
|
||||
return ErrNotImplemented
|
||||
}
|
||||
Reference in New Issue
Block a user