package nsdadapter import "fmt" // PackageType — тип пакета ЭДО НРД. Используется при отправке через ИШ. type PackageType string // Известные типы пакетов M2M и связанных сервисных сообщений. const ( PackageM2MTransferRequest PackageType = "#M2MTR" PackageM2MTransferDecision PackageType = "#M2MTD" PackageM2MTransferError PackageType = "#M2MER" 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 PackageAssetsInvestment, nil } return "", fmt.Errorf("nsdadapter: не задан PackageType для kind=%q", kind) } // IncomingPackageKinds — типы входящих пакетов, которые нужно опрашивать // и обрабатывать на нашей стороне. func IncomingPackageKinds() []PackageType { return []PackageType{ PackageM2MTransferDecision, PackageM2MTransferError, PackageSUBBR, PackageSUBER, PackageSUB16, } }