af60277411
НРД открыл приём анкеты (M2MTransferParticipantForm) в пром-контуре. По формату НРД анкета — отдельный тип ЭД M2MPF: тег <package> = "#" + первые 5 символов имени типа ЭД → "#M2MPF", businessLine=MOST (как и остальные M2M-сообщения; на ИШ <107.0.0.904 businessLine опускается). Подпись — боевым ГОСТ-контейнером на стороне ИШ. - nsdadapter/router.go: тип PackageM2MParticipantForm "#M2MPF"; KindParticipantForm теперь маппится на него (был ошибочно Assets_investment). - lkgateway/participant_form.go: действие send_igw — упаковка анкеты через igw.PackXML(..., "#M2MPF") и отправка igwClient.SendPackage в канал профиля (в боевом контуре — prod-gost). Кнопка «Отправить через шлюз (боевой ИШ)»; письмо на M2MOST@nsd.ru оставлено запасным каналом. Статус готовности ИШ на странице. - lkgateway/server.go: проброс igwClient/igwChannel в registerParticipantForm. Образец — sendHandbookRequest (#M2MHR) через тот же ИШ. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XG3zNMMf2LMoDpXo22mwMX
60 lines
2.1 KiB
Go
60 lines
2.1 KiB
Go
package nsdadapter
|
|
|
|
import "fmt"
|
|
|
|
// PackageType — тип пакета ЭДО НРД. Используется при отправке через ИШ.
|
|
type PackageType string
|
|
|
|
// Известные типы пакетов M2M и связанных сервисных сообщений.
|
|
const (
|
|
PackageM2MTransferRequest PackageType = "#M2MTR"
|
|
PackageM2MTransferDecision PackageType = "#M2MTD"
|
|
PackageM2MTransferError PackageType = "#M2MER"
|
|
PackageM2MParticipantForm PackageType = "#M2MPF"
|
|
PackageSUBBR PackageType = "SUBBR"
|
|
PackageSUBER PackageType = "SUBER"
|
|
PackageSUB16 PackageType = "SUB16"
|
|
PackageAssetsInvestment PackageType = "Assets_investment"
|
|
)
|
|
|
|
// MessageKind — внутренний классификатор доменного M2M-сообщения,
|
|
// который мы хотим отправить в НРД.
|
|
type MessageKind string
|
|
|
|
const (
|
|
KindTransferRequest MessageKind = "transfer_request"
|
|
KindTransferDecision MessageKind = "transfer_decision"
|
|
KindTransferResponse MessageKind = "transfer_response"
|
|
KindHandbookRequest MessageKind = "handbook_request"
|
|
KindParticipantForm MessageKind = "participant_form"
|
|
)
|
|
|
|
// RouteToPackageType подбирает PackageType ЭДО для нашего MessageKind.
|
|
func RouteToPackageType(kind MessageKind) (PackageType, error) {
|
|
switch kind {
|
|
case KindTransferRequest:
|
|
return PackageM2MTransferRequest, nil
|
|
case KindTransferDecision:
|
|
return PackageM2MTransferDecision, nil
|
|
case KindTransferResponse:
|
|
return PackageM2MTransferError, nil
|
|
case KindHandbookRequest:
|
|
return PackageAssetsInvestment, nil
|
|
case KindParticipantForm:
|
|
return PackageM2MParticipantForm, nil
|
|
}
|
|
return "", fmt.Errorf("nsdadapter: не задан PackageType для kind=%q", kind)
|
|
}
|
|
|
|
// IncomingPackageKinds — типы входящих пакетов, которые нужно опрашивать
|
|
// и обрабатывать на нашей стороне.
|
|
func IncomingPackageKinds() []PackageType {
|
|
return []PackageType{
|
|
PackageM2MTransferDecision,
|
|
PackageM2MTransferError,
|
|
PackageSUBBR,
|
|
PackageSUBER,
|
|
PackageSUB16,
|
|
}
|
|
}
|